ssh remote host identification has changed
我重新安装了我的服务器,我收到这些消息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [user@hostname ~]$ ssh root@pong @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 6e:45:f9:a8:af:38:3d:a1:a5:c7:76:1d:02:f8:77:00. Please contact your system administrator. Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message. Offending RSA key in /var/lib/sss/pubconf/known_hosts:4 RSA host key for pong has changed and you have requested strict checking. Host key verification failed. |
我尝试过在互联网上找到的各种解决方案。 我的
到目前为止回答的所有答案只有在您没有安装Freeipa时才有效。
来自adrin的评论中的freeipa正确答案。
这是最简单的解决方案
1 | ssh-keygen -R <host> |
例如,
1 | ssh-keygen -R 192.168.3.10 |
从
-
-R hostname 从known_hosts文件中删除属于hostname的所有密钥。此选项对于删除散列主机很有用(请参阅上面的-H选项)。
使用
1 | ssh-keygen -R [hostname] |
ip地址/主机名的示例如下:
1 | ssh-keygen -R 168.9.9.2 |
这将从known_hosts更新主机的违规行为。您还可以使用-f标志提供known_hosts的路径。
重新创建数字海洋Ubuntu图像后,我发生了同样的错误。我使用以下命令和我的服务器IP代替
1 | ssh-keygen -R [IP_ADDRESS] |
当您重新安装服务器时,其身份会发生变化,您将开始收到此消息。 Ssh无法知道您是否已更改其连接的服务器,或者已将中间服务器添加到您的网络以嗅探您的所有通信 - 因此它会引起您的注意。
只需删除相关条目,即可从known_hosts中删除密钥:
1 | sed '4d' -i /var/lib/sss/pubconf/known_hosts |
大锤将一举移除所有已知的主机:
1 | rm ~/.ssh/known_hosts |
我反对这一点,因为我们使用来自跳转框的短期服务器的小子网,并且经常使用共享相同ssh密钥的服务器的内部IP地址重用。
问题是您之前已接受与远程计算机的SSH连接,并且自上次连接以来远程计算机的数字指纹或SHA256哈希密钥已更改。因此,当您再次尝试SSH或使用github拉取代码(也使用SSH)时,会出现错误。为什么?因为您使用的计算机地址与以前相同,但远程计算机使用不同的指纹进行响应。因此,有人可能会欺骗您之前连接的计算机。这是一个安全问题。
如果您100%确定远程计算机没有受到攻击,被入侵,被欺骗等等,那么您需要做的就是删除远程计算机的known_hosts文件中的条目。这将解决问题,因为连接时不再与SHA256指纹ID不匹配。
在Mac上,这就是我所做的:
1)找到读取
2)备份SSH已知主机文件
3)找到存储计算机旧指纹的行并将其删除。您可以使用步骤1中的服务器名称和端口搜索特定的违规远程计算机指纹。
4)CTRL-X退出并选择Y保存更改
现在键入
您可以恢复原始known_hosts文件的任何问题:
正如许多人已经说过的那样,使用
1 | ssh-keygen -R pong |
此外,您可能要考虑暂时关闭主机密钥检查:
1 | ssh -oStrictHostKeyChecking=no root@pong |
适合我!
Error: Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
这表示您在第no行有一个违规的RSA密钥。 4
解决方案1:
1.
vi /var/lib/sss/pubconf/known_hosts 2.
remove line no: 4 .3.
Save and Exit, and Retry .
解决方案2:
ssh-keygen -R"you server hostname or ip"
要么
解决方案3:
sed -i '4d' /root/.ssh/known_hosts
这将删除
我使用了模拟接口的解决方案,虽然sed -i不太起作用
我通过用vim手动删除这条线来解决它:
1 | sudo vim /var/lib/sss/pubconf/known_hosts |
您可以使用任何其他所需的文本编辑器,但可能需要显示您的管理权限
这是因为您的远程计算机设置已更改。删除当前的密钥。
删除要连接的IP行。
对于Mac用户,可以使用
1 | ssh-keygen -R THE_IP_ADDRESS |
这里的其他答案都很好并且有效,无论如何,我通过删除
在我的情况下,它发生是因为我以前与具有相同IP的机器(例如192.152.51.10)进行了ssh连接,并且系统正在考虑前一主机的RSA密钥(存储在/home/user_name/.ssh/known_hosts中)不匹配。
要解决此问题,您必须删除以前存储的IP 192.152.51.10的RSA密钥。
1 | ssh-keygen -f"/home/user_name/.ssh/known_hosts" -R 192.152.51.10 |
使用此命令:
1 | truncate -s 0 /home/SYSTEM_NAME/.ssh/known_hosts |
使用以下命令从known_hosts中删除该条目:
1 | ssh-keygen -R *ip_address_or_hostname* |
这将从known_hosts文件中删除有问题的IP或主机名,并尝试再次连接。
从手册页:
-R hostname
Removes all keys belonging to hostname from a known_hosts file. This option is useful to delete hashed hosts (see the -H option
above).
编辑
然后再次运行
Note: If you got some problem, read the hints first, it will help.
如果您尝试使用该命令连接到端口2222上运行的docker容器,则会收到错误
1 | mian@tdowrick2~$ ssh pos@localhost -p 2222 |
然后要解决此问题,在本地计算机(即主机不是容器)上转到
1 | mian@tdowrick2~$ ssh pos@localhost -p 2222 |
错误将消失,但每次容器重新启动时都必须执行此操作。
做就是了:
然后
现在
只有客户端问题(ip的重复键):
解决变种:
清除一个ip(默认端口22):
1 | ssh-keygen -f -R 7.7.7.7 |
对于一个ip(非默认端口):
1 | ssh-keygen -f -R 7.7.7.7:333 |
快速清除所有ips:
1 | cd ~; rm .ssh/known_hosts |
7.7.7.7 - ssh你的服务器ip连接
333 - 非标准端口
我的解决方案是:
这比删除所有
我在我的机器上遇到了同样的错误,我清除了
有时,如果由于任何原因,您需要重新安装服务器,当通过ssh连接时,我们会发现您的服务器说该标识已更改。
如果我们知道它不是攻击,但我们已经恢复了系统,我们可以使用ssh-keygen从known_hosts中删除旧标识:
1 2 3 | ssh-keygen -R <host/ip:hostname> root/.ssh/known_hosts updated. Original contents retained as /root/.ssh/known_hosts.old |
再次连接时,我们会要求您验证新指纹:
1 2 3 4 5 | ssh -l user <host/ip:hostname> The authenticity of host '<host/ip:hostname>' can't be established. RSA key fingerprint is 3f:3d:a0:bb:59:24:35:6d:e5:a0:1a:3f:9c:86:81:90. Are you sure you want to continue connecting (yes/no)? yes |
我有这个问题,原因很简单,我有一个重复的IP地址ssh登录,所以修改这个问题后,everthing就解决了。
解:
1-从"$ HOME / .ssh / known_hosts"中删除指向无法连接的主机的行。
2-执行此命令:ssh-keygen -R"IP_ADDRESSorHOSTNAME"(用您的目标IP或目标主机名替换"IP_ADDRESSorHOSTNAME")
3-重试ssh连接(如果失败,请检查.ssh目录的权限,它必须是700)
我在UBUNTU(linux)上的解决方案:
1.您必须删除"/home/YOUR_USERNAME/.ssh/known_hosts"中"known_hosts"文件中的内容
2.生成一个新的ssh密钥,如"ssh-keygen -t rsa -C"[email protected]"-b 4096"
3.将您的新ssh密钥复制粘贴到您的git存储库(在我的情况下是gitlab)SSH密钥。
这个对我有用 !