Ubuntu-ssh - - 警告:远程主机标识已更改 [关闭]
Posted
技术标签:
【中文标题】Ubuntu-ssh - - 警告:远程主机标识已更改 [关闭]【英文标题】:Ubuntu-ssh - - WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED [closed] 【发布时间】:2012-01-29 01:22:14 【问题描述】:我无法通过 ssh 和 rysnc 连接到远程系统。它不断给出这个错误信息:
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 RSA key sent by the remote host is
a3:8f:7c:07:c9:12:d8:aa:cd:c2:ba:b3:27:68:bc:c2.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending RSA key in /root/.ssh/known_hosts:8
RSA host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking.
Host key verification failed.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.8]
我已经从/home/user/.ssh
中删除了authorized_keys
文件。
【问题讨论】:
另外请检查rsync错误信息,ssh: connect to host xxx.xxx.xxx.xxx port 22: Connection denied rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error : io.c(601) [sender=3.0.8] 出现无法解释的错误(代码 255) 如果它不是生产系统,那么你可以执行 truncate -s 0 /root/.ssh/known_hosts in.godaddy.com/help/… 【参考方案1】:您可以使用 sed 从您的 known_hosts 文件中删除第 8
行的违规密钥:
sed -i -e 8d /root/.ssh/known_hosts
【讨论】:
是的,这是为我做的! :-) sed -i -e 36d known_hosts【参考方案2】:消息显示“/root/.ssh/known_hosts
”未授权密钥。
从中删除该文件(或至少是相应的密钥),然后您就可以重新开始了!但请注意:密钥更改必须有原因。系统重装了吗?确保你检查一下,否则 ssh 的整个想法都是无效的。
顺便说一句:你以 root 身份 ssh 有什么原因吗?
【讨论】:
删除对应键$ ssh-keygen -R server.name.com
| $ ssh-keygen -R ssh.server.ip.address
| $ ssh-keygen -R server.example.com
@Nikodemus 嘿,当我删除 ssh-keygen -f "/root/.ssh/known_hosts" -R instance_ip
时,它现在显示错误 Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
我应该如何处理?【参考方案3】:
使用以下命令从 .ssh/known_hosts 文件中删除旧密钥
ssh-keygen -R <host>
【讨论】:
如果谷歌把你送到这里,同时寻找你为什么突然无法访问你的流浪者盒子的答案,这个答案将最有帮助。当启动一个新的和不同的 vagrant box 时,该 box 可能会生成一个新的 rsa-key,它与之前为同一本地主机注册的 rsa-key 不同。如果是这种情况,您可以相信更改只是麻烦,您可以删除旧的无效密钥 不仅仅是 Vagrant,如果你重新安装你的机器,密钥会改变。这似乎是最干净、最安全的解决方案。 如果这不起作用,有什么想法可以尝试吗?! 找不到命令错误? @Talespin_Kit 在我的情况下只是没有删除它:ssh-keygen -R localhost
-> /Users/user/.ssh/known_hosts updated.
但字符串没有删除【参考方案4】:
这样做:
mv .ssh/known_hosts .ssh/known_hosts_old
【讨论】:
迄今为止最好的答案! 当问题只是一个主机时,没有理由删除整个文件。 对于不熟悉 ssh 和主机密钥如何工作的人来说,这似乎是不明智的建议。您能否在答案中添加更多细节,说明这样做的影响? 同意@Jian,这种方法会破坏以前工作的所有其他主机,并要求您重新信任远程服务器。如果您使用任何批处理脚本/自动化,那就不好了。【参考方案5】:消息确实解释了自己:
远程主机用密钥标识自己 您之前为该主机提供的密钥副本不同 所以远程主机有可能不是他们所说的那个人如果您信任远程主机,您可以从 /root/.ssh/known_hosts 中删除第 8 行,ssh 会在您下次尝试连接时询问您是否可以添加新密钥
如果您不信任远程主机,您必须联系主机管理员以了解他们是否以及为什么更改了 ssh 密钥。如果他们没有,则意味着您的流量被拦截了
另一方面,如果你真的信任远程主机(例如它在 Intranet 上),你可以使用
运行 ssh-oBatchMode=yes -oStrictHostKeyChecking=no
【讨论】:
以上是关于Ubuntu-ssh - - 警告:远程主机标识已更改 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
ssh WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED(警告:远程主机标识已更改)
ssh WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED(警告:远程主机标识已更改)