5

我怎么知道 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 提交代码。在第一次访问尝试和腻子想要缓存密钥时出现了这个问题。从网络上的足够多的资源中,我发现足以确信它实际上是 GitHub,但是我如何亲自验证它呢?意识到欺骗风险等,但这不是问题。

第一次ssh-rsa 2048尝试后,我从腻子上得到了指纹。git clone [repository ssh url]

4

1 回答 1

5

您看到这种情况的原因是您使用的是旧的、过时的 SSH 客户端。

密钥的指纹仅仅是密钥体的哈希值。旧版本的 OpenSSH 为此使用 MD5,而您使用的带有冒号的格式是 MD5 格式。然而,MD5 非常容易受到碰撞,以至于 CMU 表示它“不适合进一步使用”。责任方已经完全放弃了它,因为它自 2004 年以来就被认为是不安全的。即使不知道 SSH 使用它的目的是不安全的,也没有任何充分的理由将 MD5 用于任何目的。

OpenSSH 前段时间为此切换到 SHA-256,同时,他们切换到在 Base64 中编码哈希。同时,他们在名称前面加上了哈希算法,所以它是明确的。SHA-256 被广泛认为是安全的,并且 GitHub 不再显示 MD5 指纹,因为大多数客户端都处理 SHA-256。

不幸的是,Putty 回到了 2000 年代初期,并没有离开 MD5。GitHub 仍然在https://api.github.com/meta上发布其密钥的 MD5 哈希,以便您可以看到它,但大多数人不再发布 MD5 指纹。

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

于 2020-11-24T00:19:08.567 回答