📌  相关文章
📜  主机密钥验证失败.致命:无法从远程存储库中读取. - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:06:18.261000             🧑  作者: Mango

主机密钥验证失败.致命:无法从远程存储库中读取.

在开发过程中,我们经常会使用第三方的远程库来实现某些功能。然而,当我们从远程库中获取代码时,有时候会遇到“主机密钥验证失败.致命:无法从远程存储库中读取.”的错误提示。那么这个错误是什么原因引起的呢?如何解决这个错误?

错误原因

当从远程库中获取代码时,GIT会验证远程主机的密钥是否与本地主机的密钥相符。如果两者不匹配,则会出现“主机密钥验证失败”的错误提示。这通常发生在以下情况下:

  • 远程主机的密钥已经更新,但本地主机还是使用旧的密钥;
  • 本地主机的配置文件中没有远程主机的密钥。
解决方案

要解决这个错误,我们需要执行以下步骤:

  1. 更新本地主机的密钥

如果远程主机的密钥已经更新,那么我们需要更新本地主机的密钥。我们可以使用以下命令:

ssh-keygen -R <host>

其中,<host>是远程主机的IP地址或域名。这个命令会从本地主机的密钥列表中删除远程主机的密钥,在下次连接时重新生成一个新的密钥。

  1. 添加远程主机的密钥

如果本地主机的配置文件中没有远程主机的密钥,那么我们需要手动添加远程主机的密钥。我们可以使用以下命令:

ssh-keyscan <host> >> ~/.ssh/known_hosts

其中,<host>是远程主机的IP地址或域名。这个命令会从远程主机获取密钥信息,并将其添加到本地主机的密钥列表中。

  1. 检查本地主机的配置文件

如果以上两个步骤都无法解决问题,那么我们需要检查本地主机的配置文件,确认远程主机的密钥是否正确添加。我们可以使用以下命令检查本地主机的配置文件:

cat ~/.ssh/config

如果我们在配置文件中正确地指定了远程主机的密钥,那么我们需要确认这个密钥是不是正确的。

结论

在从远程库中获取代码时,出现“主机密钥验证失败”的错误提示,通常是由于远程主机的密钥与本地主机的密钥不匹配所引起的。要解决这个问题,我们需要更新本地主机的密钥、添加远程主机的密钥,或检查本地主机的配置文件。