我已经获得了对我们的生产服务器的root访问权限,并且我想将最新版本的git部署到服务器,但是当我在我想要更新的文件夹上“git pull”时,我遇到了以下错误。
我已经浏览了一下,但无法找到明确的答案。
登台服务器在同一台计算机上运行,但只是在不同的文件夹中,当我在该文件夹上pull
时,一切正常。
对于Linux,我不是很有经验,所以请帮我解决一下如何修复的明确答案: - )
否则我可以访问我需要的任何内容
P.S。 这在过去是有效的,所以我假设它与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.
答案 0 :(得分:27)
在日志中,您会看到以下文字:
(...) 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 :(得分:16)
<强>窗:强>
/Users/Abhilash/.ssh/known_hosts
并删除其中的内容并保存。Linux / Mac:
~/.ssh/
ctrl+O
注意:强> 您将被要求在再次推送时保存密钥。
答案 2 :(得分:1)
所有其他答案都会带来安全风险。
出现此错误是因为您的 known_hosts
文件中有一条记录,表明服务器应该具有特定的 ssh 密钥。但是当您尝试连接时,服务器发送了一个不同的 ssh 密钥,该密钥与您的 known_hosts
文件中的密钥不匹配。您的特定错误消息说:
Offending ECDSA key in /root/.ssh/known_hosts:1
这意味着 known_hosts
文件中的第一行与远程服务器发送的不同。
解决问题的安全方法如下:
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
known_hosts
的现有指纹与来自 GitHub 或 GitLab 网站的官方指纹匹配,则 ssh
已检测到中间人 (MitM) 攻击。 停止。不要连接到服务器。尝试从不同的 Internet 连接进行连接。与您的管理员联系。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])?
仔细检查指纹是否与 GitHub 或 GitLab 网站上显示的相符,然后相应地键入 yes
或 no
。答案 3 :(得分:0)
按照这些对我有用的步骤进行操作后,我也遇到了同样的问题。
对于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.
它肯定会工作。
答案 4 :(得分:-1)
如果您想要永久删除此消息,可以编辑您的ssh配置文件(~/.ssh/config
)以包含:
Host {YOUR HOST HERE}
StrictHostKeyChecking no
UserKnownHostsFile /dev/null