头版Folia Daily Briefing
← 返回头版
互联网

GitHub突然拒绝SSH密钥,原因竟是缺少.pub文件

一位用户遭遇GitHub SSH密钥认证突然失败的问题,系统返回"Permission denied (publickey)"错误信息 。经过排查,用户发现根本原因在于私钥文件缺少对应的.pub公钥文件 。

一位用户遭遇GitHub SSH密钥认证突然失败的问题,系统返回"Permission denied (publickey)"错误信息 [1]。经过排查,用户发现根本原因在于私钥文件缺少对应的.pub公钥文件 [1]。

用户通过执行命令 ssh-keygen -y -f ~/.ssh/github_rsa > ~/.ssh/github_rsa.pub 生成了.pub文件后,认证问题得以解决 [1]。为验证这个修复方案,用户进行了对照测试:在没有.pub文件的情况下连续12次全部被拒,而添加.pub文件后连续12次全部接受 [1]。

用户推测,GitHub服务器软件可能近期进行了更新 [1]。根据观察,GitHub SSH服务器标识从"babeld-"变更为"6a2c000" [1]。用户分析认为,GitHub现已拒绝直接签名的publickey认证请求,而只接受包含探测-签名认证流程的方式 [1]。这两种流程虽均符合RFC 4252规范 [1],但GitHub的政策调整使得仅有私钥而缺少公钥文件的用户面临认证障碍。


GitHubSSH密钥认证OpenSSH.pub文件身份验证流程