如何验证SSH指纹?

7
我如何确定GitHub服务器rsa2密钥指纹 ssh-rsa 2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48与他们在网站上展示的 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 (RSA) 的指纹匹配,因为它们看起来不一样?
我正在设置我的GitHub帐户以使用SSH提交代码。问题出现在首次访问尝试期间,putty想要缓存该密钥。从互联网上足够的来源中,我找到了足够的证据来确认这确实是GitHub,但我如何个人验证?意识到欺骗风险等等,但这不是问题。
我通过首次尝试git clone [repository ssh url]后从putty获得了ssh-rsa 2048指纹。
1个回答

6
你看到这个的原因是因为你正在使用一个旧的、过时的SSH客户端。
密钥指纹仅是密钥主体的哈希。OpenSSH的旧版本使用MD5进行此操作,而你正在使用带有冒号的MD5格式。然而,MD5对碰撞非常容易受到攻击,CMU表示它“不适合进一步使用”。自2004年以来已知不安全,负责任的各方已经完全放弃它。即使SSH使用它的目的没有被认为是不安全的,也没有任何好的理由再使用MD5了。
OpenSSH在一段时间前切换到SHA-256,并同时将哈希编码为Base64。同时,他们在名称前加上了哈希算法,以便它是明确的。SHA-256被广泛认为是安全的,GitHub不再显示MD5指纹,因为大多数客户端处理SHA-256。

很遗憾,Putty仍停留在2000年代,并未摆脱MD5。GitHub仍然发布其密钥的MD5哈希值https://api.github.com/meta,因此您可以查看它,但大多数人不再发布MD5指纹。

如果您使用Windows,则可以使用随Git for Windows附带的OpenSSH版本;否则,在大多数Unix系统上已经可以使用OpenSSH。足够新的版本将像往常一样显示SHA-256指纹。


事实上,我使用了Putty。感谢您如此详尽的回答。 - Nelumbo
似乎现在已经没有MD5密钥了。该页面仅包含SHA2密钥。 - Luc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接