当前位置: 首页 > 知识库问答 >
问题:

Git错误:连接到远程存储库时“主机密钥验证失败”

蔺山
2023-03-14

我试图连接到驻留在我的网络服务器上的远程Git存储库,并将其克隆到我的机器上。

我的命令使用以下格式:

git clone ssh://username@domain.com/repository.git

这对我的大多数团队成员都很有效。通常在运行此命令后,Git会提示输入用户的密码,然后运行克隆。但是,当运行在我的机器之一,我得到以下错误:

主机密钥验证失败。

致命:无法从远程存储库读取。

我们没有使用SSH密钥连接到此存储库,所以我不确定Git为什么要在这台特定的机器上检查一个。

共有3个答案

鲍理
2023-03-14

我也有类似的问题,但是,使用SSH钥匙。从上面Tupy的回答中,我发现问题在于known_hosts文件不存在或github.com不存在于已知主机列表中。以下是我解决问题的步骤-

  1. mkdir-p~/。ssh
  2. ssh keyscan-t rsa github。通用域名格式

米项禹
2023-03-14

您通过SSH协议进行连接,如克隆URL上的SSH://前缀所示。使用SSH,每个主机都有一个密钥。客户端会记住与特定地址关联的主机密钥,并在主机密钥出现更改时拒绝连接。这防止了中间人的攻击。

domain.com的主机密钥已更改。如果这对您来说并不可疑,请通过编辑${HOME}/. ssh/known_hosts从本地缓存中删除旧密钥,以删除domain.com行或让SSH实用程序为您执行此操作与

ssh-keygen -R domain.com

从这里开始,记录更新后的密钥,或者使用

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

或者,等价地,让ssh在您下次连接git提取git拉git推(甚至是一个普通的ol'sshdomain.com )通过在提示时回答是

The authenticity of host 'domain.com (a.b.c.d)' can't be established.
RSA key fingerprint is XX:XX:...:XX.
Are you sure you want to continue connecting (yes/no)?

出现此提示的原因是域。com在删除后不再位于您的known_hosts中,并且可能不在系统的/etc/ssh/ssh_known_hosts中,因此ssh无法知道连接另一端的主机是否真的是域。通用域名格式。(如果/etc中存在错误的密钥,则具有管理权限的人必须更新系统范围的文件。)

我强烈建议您考虑使用用户对密钥进行身份验证。通过这种方式,ssh-agent可以方便地存储密钥材料(而不是每个人都必须为每个服务器连接输入密码),并且密码不会通过网络传递。

扈瑞
2023-03-14

正如我之前在克隆git repo时回答的那样,导致错误-主机密钥验证失败。致命:远程端意外挂起,请将GitHub添加到已知主机列表中:

ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
 类似资料:
  • 我正在尝试提交到我的存储库,但当我单击“发布分支”时,出现了一个错误,请帮助我,伙计们,我需要办公室工作的帮助,我是新来的。 点击这里查看图片

  • 问题内容: 我具有对生产服务器的超级用户访问权限,我想在git中将最新版本部署到服务器,但是当我在要更新的文件夹上“ git pull”时遇到以下错误。 我浏览了一下,但是找不到明确的答案。 登台服务器在同一台计算机上运行,​​但是只是在不同的文件夹中,当我在该文件夹中时,一切正常。 我对Linux不太有经验,所以请提供有关如何修复的明确答案:-) 否则我可以使用任何我需要的东西 ps这在过去一直

  • 问题内容: 我的 詹金斯(Jenkins) 有问题,设置为“ git”,显示以下错误: 我已经用 ssh 测试过: 这是错误的: 我还使用“ SSH密钥”完成了这些步骤。 在詹金斯下登录 将您的github密钥复制到Jenkins .ssh文件夹 重命名键 但仍然无法在 jenkins中使用* git 仓库。 * 感谢帮助!。 问题答案: 更改为用户并手动运行命令: 首次通过SSH连接到新主机时,

  • 我对jenkins有一个问题,设置“Git”,显示以下错误: 我已经用ssh进行了测试: 这是错误: 谢谢你的帮助!。

  • 我正在使用SSH将git repo克隆到我的web服务器,但每次我都会遇到这个错误 我已经尝试了谷歌搜索中出现的几乎所有东西,我对为什么这不起作用感到目瞪口呆。有什么想法吗? 还有,我没有用詹金斯这样的东西。

  • 如何完全断开本地Git存储库与所有远程分支的连接? 我从github克隆了一个Git存储库。com,但后来它被删除了,我不希望Git报告任何需要“推送”的更改。我试过用谷歌搜索这个,但我认为我的术语是错误的,我什么也找不到。 我可以简单地从我的列表中删除和部分吗。git/config文件,还是会破坏我的本地存储库?