GitHub suddenly rejected my SSH key (the fix was a .pub file?)
9 hours ago
- 一个之前工作正常的笔记本电脑上的SSH密钥突然无法用于Git拉取操作,而同一密钥在其他设备上依然有效。
- 私钥有效,使用现代签名算法,SSH配置正确;GitHub状态显示正常。
- 解决方案很简单:使用`ssh-keygen -y -f <密钥> > <密钥>.pub`从私钥生成缺少的.pub文件。
- 经过12次测试证实,.pub文件是必需的:没有它,身份验证会被拒绝;有了它,就能正常工作。
- .pub文件改变了OpenSSH的身份验证流程:有了它,客户端在签名前会先探测服务器;没有它,客户端会直接发送签名请求。
- 根据RFC 4252,两种流程都是合法的,但GitHub现在似乎拒绝了直接签名请求,可能是由于新的服务器软件(由横幅'6a2c000'识别)。
- 作者认为GitHub的SSH前端发生了变化导致此问题,并建议确保所有私钥都有对应的.pub文件。