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

我使用以下格式的命令:

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

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

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

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


当前回答

对Tupy的回答做一个小小的补充,您可能需要添加存储库主机的端口号:

ssh-keyscan -p 8888 -t rsa domain.example >> ~/.ssh/known_hosts

如果您有另一台具有远程访问权限的计算机,您可以通过查看~/.ssh/known_hosts找到端口号:

[user]$ less ~/.ssh/known_hosts
[domain.example]:8888,[000.00.000.000]:8888 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCi...

其他回答

如果您在始终由防火墙保护的办公室内部网(否则很危险)中,只需在~/.ssh/config中添加以下行即可。

Host *
  StrictHostKeyChecking no
  UserKnownHostsFile=/dev/null

>管理Jenkins >配置全局安全> Git主机密钥验证配置。 然后在主机密钥验证策略中选择接受第一个连接。

当终端显示:

您确定要继续连接(是/否)?

不要我重复一遍不要直接按Enter键。

你必须先在终端输入yes,然后按Enter。

另一种替代方法也适用于我,而不是克隆SSH链接

git@gitlab.company.net:upendra/mycode.git

有一个选项可以选择HTTP链接

http://gitlab.company.net:8888/upendra/mycode.git

所以我使用http链接克隆为Visual studio,它为我工作

你可以使用https而不是ssh来克隆git或git pull或git push

ex:

git clone https://github.com/user/repo.git