📌  相关文章
📜  无法确定主机'github.com(140.82.121.3)'的真实性. RSA 密钥指纹是 SHA256 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:55:07.337000             🧑  作者: Mango

无法确定主机'github.com(140.82.121.3)'的真实性

当您在使用Git执行与GitHub远程仓库相关的操作时,您可能会遇到以下错误消息:

"Warning: Permanently added the RSA host key for IP address '140.82.121.3' to the list of known hosts. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!"

这是由于GitHub对其SSH秘钥进行了升级,导致您的本地秘钥与服务器上的秘钥不一致,从而让Git无法验证GitHub服务器的真实性。

为了解决这个问题,您需要更新SSH秘钥以匹配服务器上的新秘钥。可以通过以下命令来跳过安全性警告,更新您的秘钥:

ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts

此命令将新的GitHub RSA密钥指纹添加到您的known_hosts文件中,让Git能够通过SSH连接到GitHub,同时不会再出现“无法确定主机”的警告。

另外,您可以通过在执行Git命令时加上 “-o StrictHostKeyChecking=no” 参数来暂时禁用严格的主机密钥检查:

ssh -o StrictHostKeyChecking=no git@github.com

虽然这种方法可以立即解决“无法确定主机”的错误消息,但在安全性方面会存在一些潜在风险。因此,建议在执行完更新秘钥等操作后,再将参数重置为默认值。

RSA密钥指纹

RSA密钥指纹是一种摘要算法,用于验证证书或公钥的真实性。SHA256算法是一种目前比较常用的指纹算法之一,可生成一个具有256位输出的唯一指纹。当您在执行Git命令时,Git会验证GitHub服务器的公钥指纹是否与存储在您本地计算机的known_hosts文件中的指纹一致,从而确保连接的安全性。

在GitHub SSH密钥指纹的例子中,SHA256算法计算出的公钥指纹为:

SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8

您可以将此指纹添加到您的known_hosts文件中,来确保与GitHub服务器的SSH连接是安全的。

参考资料