繁体   English   中英

无法“git pull”——主机密钥验证失败

[英]Not able to "git pull" - Host key verification failed

我有对我们的生产服务器的 root 访问权限,我想将 git 中的最新版本部署到服务器,但是当我在要更新的文件夹上“git pull”时遇到以下错误。

我浏览了一下,但找不到关于该做什么的明确答案。

登台服务器在同一台机器上运行,但只是在不同的文件夹中,当我pull该文件夹时一切正常。

我对 Linux 不是很有经验,所以请帮我明确回答如何修复:-)

否则我可以访问我需要的任何东西

ps 这在过去有效,所以我假设它与 SSH 密钥有关

错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for www.site.org has changed,
and the key for the corresponding IP address x.x.x.x
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
*************
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:1
  remove with: ssh-keygen -f "/root/.ssh/known_hosts" -R gitlab.site.org
ECDSA host key for gitlab.site.org has changed and you have requested strict checking.
Host key verification failed.

在日志中,您会看到以下文本:

(...)

Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:1
remove with: ssh-keygen -f "/root/.ssh/known_hosts" -R gitlab.site.org
ECDSA host key for gitlab.site.org has changed and you have requested strict checking.
Host key verification failed.

所以这是执行那里建议的命令的问题:

ssh-keygen -f "/root/.ssh/known_hosts" -R gitlab.site.org

视窗:

  1. 转到/Users/Abhilash/.ssh/known_hosts并删除其中的内容并保存。

Linux/Mac:

  1. 转到~/.ssh/
  2. nano known_hosts
  3. 删除里面的内容并保存ctrl+O

注意:再次按下时,系统会提示您保存密钥。

按照这些对我有用的步骤后,我也遇到了同样的问题。

对于 macOS:

Step 1: Go to Folder or use command+shift+g
Step 2: type "~/.ssh/"
Step 3: Open "known_hosts" file and Remove all the content
Step 4: Now Open terminal and pull from another branch, It will ask for password give your system password.

它肯定会起作用。

所有其他答案都会带来安全风险。

出现此错误是因为您的known_hosts文件中有一条记录,表明服务器应该具有特定的 ssh 密钥。 但是当您尝试连接时,服务器发送了一个不同的 ssh 密钥,该密钥与您的known_hosts文件中的密钥不匹配。 您的特定错误消息说:

Offending ECDSA key in /root/.ssh/known_hosts:1

这意味着known_hosts文件中的第一行与远程服务器发送的不同。

解决此问题的安全方法如下:

  1. 从可信赖的来源找出正确的密钥指纹应该是什么。 例如,在这里您可以找到GitHubGitLab的正确指纹。 (如果您的组织自托管 GitLab,您将需要与您的管理员联系以获取 ssh 密钥指纹。)
  2. 检查known_hosts文件中的现有指纹是否正确。
    您可以运行ssh-keygen -lf ~/.ssh/known_hosts (或/root/.ssh/known_hosts在您的情况下)从您的known_hosts文件生成 SHA256 指纹。 您的错误消息说问题出在第一个键上。 在 GitHub 或 GitLab 上找到等效的 SHA256 指纹并检查它是否完全匹配。
    例如,这是上述命令的输出:
     256 SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw gitlab.com (ECDSA)
    这是来自GitLab网站的 ECDSA SHA256 指纹:
     HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw
  3. 如果来自known_hosts的现有指纹与来自GitHubGitLab网站的官方指纹匹配,则ssh已检测到中间人 (MitM) 攻击。 停止 不要连接到服务器。 尝试从不同的 Internet 连接进行连接。 与您的管理员交谈。
  4. 如果known_hosts的现有指纹官方指纹不匹配,那么要么您之前受到了中间人攻击,要么托管 GitLab 的服务器已更改其 ssh 密钥。 您可以从known_hosts文件中删除指纹。 注意:只删除导致问题的特定指纹。)下次连接到 GitLab 时,系统会提示您将新指纹添加到known_hosts文件中。
     The authenticity of host 'gitlab.com (172.65.251.78)' can't be established. ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw. Are you sure you want to continue connecting (yes/no/[fingerprint])?
    仔细检查指纹是否与GitHubGitLab网站显示的内容匹配,然后相应地输入yesno

尝试将 ssh 替换为:

ssh -oStrictHostKeyChecking=no

因为如果密钥尚未被接受,那么它会询问您是否要接受它是/否。 或者,您也可以在 SSH 命令之前在 CI 文件中执行此操作:

echo "StrictHostKeyChecking no" >> ~/.ssh/config

礼貌: https://forum.gitlab.com/t/error-host-key-verification-failed/77315/3

如果您想永久删除此消息,您可以编辑您的 ssh 配置文件 ( ~/.ssh/config ) 以包括:

Host {YOUR HOST HERE}
 StrictHostKeyChecking no
 UserKnownHostsFile /dev/null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM