SSH远程主机标识已经改变

我已经重新安装了我的服务器,我收到这些消息:

[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. 

我尝试过在互联网上find的各种解决scheme。 我的known_hosts文件(通常在~/.ssh/known_hosts )位于/var/lib/sss/pubconf/known_hosts 。 我试图编辑它,但它仍然在一个状态。 我已经安装了ipa-client并安装了Fedora 19.我该如何解决这个警告?

到目前为止答复的所有答案只适用于没有安装Freeipa的情况。

在这里,从adrin下面评论freeipa的正确答案。

这是最简单的解决scheme

 ssh-keygen -R <host> 

例如,

 ssh-keygen -R 192.168.3.10 

使用

ssh-keygen -R hostname

例如ssh-keygen -R 168.9.9.2

这将更新来自known_hosts的主机的违规

我重新创build了数字海洋Ubuntu镜像后,发生了同样的错误。 我用我的服务器IP代替[IP_ADDRESS]

 ssh-keygen -R [IP_ADDRESS] 

当您重新安装服务器时,其身份将发生变化,您将开始收到此消息。 Ssh无法知道您是否更改了连接的服务器,或者您的networking中已添加了中间服务器以嗅探您的所有通信,因此它会引起您的注意。

只需删除相关条目,即可从known_hosts中删除密钥:

 sed '4d' -i /var/lib/sss/pubconf/known_hosts 

4d是由于Offending RSA ...known_hosts:4

问题是您之前已经接受了与远程计算机的SSH连接,而且自上次连接以来,远程计算机的数字指纹或SHA256哈希键已经更改。 因此,当您尝试再次使用SSH或使用github提取代码(也使用SSH)时,会出现错误。 为什么? 由于您使用的是与以前相同的远程计算机地址,但远程计算机使用不同的指纹进行响应。 因此,有人可能欺骗了您之前连接的计算机。 这是一个安全问题。

如果您100%确定远程计算机没有被入侵,被黑客入侵,被欺骗等,那么您只需要删除远程计算机的known_hosts文件中的条目。 这将解决这个问题,因为连接时不会再与SHA256指纹ID不匹配。

在Mac上这是我所做的:

1)find读取RSA host key for servername:port has changed and you have requested strict checking.的输出行RSA host key for servername:port has changed and you have requested strict checking. 您将需要该日志输出中的服务器名称和潜在的端口。

2)备份SSH已知主机文件cp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bak

3)find计算机旧指纹存储的行并将其删除。 您可以使用步骤#1中的服务器名称和端口来search特定的有问题的远程计算机指纹。 nano /Users/yourmacusername/.ssh/known_hosts

4)CTRL-X退出并selectY保存更改

现在inputssh -p port servername ,您将收到您在第一次尝试SSH到该计算机时所做的原始提示。 然后您可以select将远程计算机的更新的SHA256指纹保存到您的known_hosts文件中。 如果您通过端口22使用SSH,则-p参数不是必需的。

您可以恢复原始的known_hosts文件的任何问题: cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts

我使用了mockinterface的解决scheme,虽然sed -i没有工作,但是我用vim手工删除了这个行来解决这个问题:

 sudo vim /var/lib/sss/pubconf/known_hosts 

您可以使用任何其他文本编辑器,但可能需要显示您的pipe理权限

大锤是一举将所有已知的主机删除:

 rm ~/.ssh/known_hosts 

我碰到这个问题,因为我们使用跳转框中的短期服务器的小型子网,并经常使用共享相同ssh密钥的服务器的内部IP地址重用。

为我工作!

错误:错误 / var / lib / sss / pubconf / known_hosts中的RSA密钥错误4

这表明您在第号行有一个违规的RSA密钥。 4

解决scheme1

1. vi /var/lib/sss/pubconf/known_hosts

2. remove line no: 4

3. Save and Exit, and Retry

要么

解决scheme2:

ssh-keygen -R "you server hostname or ip"

正如许多人已经说过,使用ssh-keygen ,即

 ssh-keygen -R pong 

另外,您可能会考虑暂时closures主机密钥检查:

 ssh -oStrictHostKeyChecking=no root@pong 

这是因为您的远程计算机设置已更改。 删除你的当前键。

vim /root/.ssh/known_hosts

删除你正在连接的IP的行。

在我的情况发生,因为我以前曾与具有相同的IP (例如192.152.51.10) 的计算机的ssh连接,并且系统正在考虑上一个主机的RSA密钥(存储在/ home / user_name / .ssh / known_hosts)在不匹配。

解决此问题,您必须删除先前存储的IP 192.152.51.10的RSA密钥

 ssh-keygen -f "/home/user_name/.ssh/known_hosts" -R 192.152.51.10 

这里的其他答案是好的,工作,无论如何,我通过删除~/.ssh/known_hosts解决了这个问题。 这当然可以解决这个问题,但这可能不是最好的方法。

只有客户端的问题(重复密钥为IP):

解决变种:

清除一个IP(默认端口22):

 ssh-keygen -f -R 7.7.7.7 

对于一个ip( 非默认端口):

 ssh-keygen -f -R 7.7.7.7:333 

快速清除所有ips:

 cd ~; rm .ssh/known_hosts 

7.7.7.7 – ssh你的ip连接

333 – 非标准端口

我有这个问题,原因很简单,我有一个重复的IP地址SSHlogin,所以修改这个问题后,everthing解决了。

我在我的机器上有同样的错误,我清除authorized_keysknown_hosts文件,之后,它工作正常。

我的解决scheme是:

  1. vi ~/.ssh/known_hosts
  2. 删除包含你想连接的IP的行。

这比删除所有known_hosts更好

解:

1-从“$ HOME / .ssh / known_hosts”中删除指向无法连接的主机的行。

2-执行以下命令:ssh-keygen -R“IP_ADDRESSorHOSTNAME”(将IP_​​ADDRESS或HOSTNAMEreplace为目标IP或目标主机名)

3-重试ssh连接(如果失败,请检查.ssh目录下的权限,必须是700)