" Git: Host Key Verification Failed "错误
几乎地球上的每个开发人员都听说过或曾经使用过Git和其他相关的Git服务,如GitHub、GitLab、GoGs等托管平台。
在执行Git操作(例如克隆存储库)时,可能会遇到“Git: Host key verification failed”错误消息。
这对于Git的新用户来说尤其不方便,因为他们不知道如何排除故障。在这篇文章中,我们将探讨这个错误意味着什么,以及如何修复它,以允许你执行所需的Git操作。
是什么导致这个错误?
找到错误根源的最好方法是理解它的含义。在Git中,“主机密钥验证失败”错误意味着远程服务器的主机密钥与存储在已知主机中的主机密钥不匹配。
在SSH中,“known_hosts”是一个文本文件,其中存储了您之前连接到的所有远程服务器的主机密钥列表。“known_hosts”文件中的每一行都包含远程计算机的主机名或IP地址以及相关的公钥。
使用示例输出如下:
192.168.100.20 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMI63NHdHkXQKHZpUBbmI/3xGLhZFjnsV89q1q8la5yo
192.168.100.20 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIO+I3YnC3nA20lZ2g7cgACU/ YhY1yBC0aQrcgscghRww8n1NLwfSZI6SInkUJfNu6xRJRTTbj14h5RZDgxmPKg=
删除服务器的主机密钥用于在建立SSH连接时唯一地标识和验证远程服务器。
每次尝试连接到远程服务器时,都会执行验证密钥的操作。
因此,如果远程服务器的主机密钥发生了更改,而您仍然拥有该密钥的过期副本,则会得到此错误。
从本质上讲,这意味着本地机器上的主机密钥与远程机器上的主机密钥不同。这可以像更改远程机器的IP地址一样简单。
如何解决?
要修复此错误,您所需要做的就是删除过时的主机密钥副本并用新的主机密钥替换它。
使用实例移除旧的主机密钥。
$ ssh-keygen -R
将主机名或IP地址替换为远程服务器IP地址的实际主机名或IP地址。
接下来,使用以下命令向“known_hosts”文件添加一个新的主机密钥:
$ ssh-keygen -t rsa >> ~/.ssh/known_hosts . sh
这会将远程机器的新主机密钥添加到“known_hosts”文件中。
注意:然而,最推荐的方法是登录到远程服务器,并允许SSH处理将新主机文件添加到您的机器中的过程。
对于Git,你可以通过运行“Git push”或“Git fetch”命令来完成。
结论
在这篇文章中,我们探讨了在执行Git操作时出现“Git: Host key verification failed”错误的原因以及如何解决它。