Hasty Briefsbeta

双语

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文件。