我重新安装了我的服务器,我收到这些消息:
[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.
我尝试过在互联网上找到的各种解决方案.我的known_hosts
文件(通常在~/.ssh/known_hosts
)中/var/lib/sss/pubconf/known_hosts
.我试过编辑它,但它仍处于一种状态.我安装了ipa-client并安装了Fedora 19.如何解决此警告?
到目前为止回答的所有答案只有在您没有安装Freeipa时才有效.
正确的答案,从adrin下面的评论freeipa 这里.
当您重新安装服务器时,其身份会发生变化,您将开始收到此消息.Ssh无法知道您是否已更改其连接的服务器,或者已将中间服务器添加到您的网络以嗅探您的所有通信 - 因此它会引起您的注意.
只需删除相关条目,即可从known_hosts中删除密钥:
sed '4d' -i /var/lib/sss/pubconf/known_hosts
这4d
是在帐户上Offending RSA ...known_hosts:4
使用
ssh-keygen -R [hostname]
ip地址/主机名的示例如下:
ssh-keygen -R 168.9.9.2
这将从known_hosts更新主机的违规行为
这是最简单的解决方案
ssh-keygen -R <host>
例如,
ssh-keygen -R 192.168.3.10
从ssh-keygen
手册页:
-R hostname
从known_hosts文件中删除属于hostname的所有密钥.此选项对于删除散列主机很有用(请参阅上面的-H选项).
重新创建数字海洋Ubuntu图像后,我发生了同样的错误.我使用以下命令代替我的服务器IP[IP_ADDRESS]
ssh-keygen -R [IP_ADDRESS]
问题是您之前已接受与远程计算机的SSH连接,并且自上次连接以来远程计算机的数字指纹或SHA256哈希密钥已更改.因此,当您再次尝试SSH或使用github拉取代码(也使用SSH)时,会出现错误.为什么?因为您使用的计算机地址与以前相同,但远程计算机使用不同的指纹进行响应.因此,有人可能会欺骗您之前连接的计算机.这是一个安全问题.
如果您100%确定远程计算机没有受到攻击,被入侵,被欺骗等等,那么您需要做的就是删除远程计算机的known_hosts文件中的条目.这将解决问题,因为连接时不再与SHA256指纹ID不匹配.
在Mac上,这就是我所做的:
1)找到读取的输出行RSA host key for servername:port has changed and you have requested strict checking.
您将需要该日志输出中的servername和可能的端口.
2)备份SSH已知主机文件 cp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bak
3)找到存储计算机旧指纹的行并将其删除.您可以使用步骤1中的服务器名称和端口搜索特定的违规远程计算机指纹.nano /Users/yourmacusername/.ssh/known_hosts
4)CTRL-X退出并选择Y保存更改
现在输入ssh -p port servername
,您将收到第一次尝试SSH到该计算机时所做的原始提示.然后,您将可以选择将远程计算机的更新SHA256指纹保存到known_hosts文件中.如果您通过端口22使用SSH,则不需要-p参数.
您可以恢复原始known_hosts文件的任何问题: cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts
许多人已经说过,使用ssh-keygen
,即
ssh-keygen -R pong
此外,您可能要考虑暂时关闭主机密钥检查:
ssh -oStrictHostKeyChecking=no root@pong
适合我!
错误:在/ var/lib/sss/pubconf/known_hosts中违反RSA密钥: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
这将删除就4th
地线/root/.ssh/known_hosts
(-i
).
我使用了模拟接口的解决方案,虽然sed -i没有完全工作我通过手动删除vim来解决它:
sudo vim /var/lib/sss/pubconf/known_hosts
您可以使用任何其他所需的文本编辑器,但可能需要显示您的管理权限
对于Mac用户,可以使用命令的-R
标志ssh-keygen
。快速示例:
ssh-keygen -R THE_IP_ADDRESS
THE_IP_ADDRESS
是您要尝试使用的IP。然后您就可以连接好了。
这是因为您的远程计算机设置已更改.删除当前的密钥.
vim /root/.ssh/known_hosts
删除要连接的IP行.
大锤将一举移除所有已知的主机:
rm ~/.ssh/known_hosts
我反对这一点,因为我们使用来自跳转框的短期服务器的小子网,并且经常使用共享相同ssh密钥的服务器的内部IP地址重用.
这里的其他答案很好并且可以正常工作,无论如何,我通过删除解决了问题~/.ssh/known_hosts
。当然可以解决问题,但这可能不是最佳方法。