RSA host key for has changed and you have requested strict checking

问题

《RSA host key for has changed and you have requested strict checking》

登录ssh 的时候,总是发现提示这个错误。这里顺便问了下自己,StrictHostKeyChecking 这个是什么意思。 SSH 连接远程主机时,会检查主机的公钥。如果是第一次该主机,会显示该主机的公钥摘要,提示用户是否信任该主机,当选择接受,就会将该主机的公钥追加到文件 ~/.ssh/known_hosts 中。当再次连接该主机时,就不会再提示该问题了。 如果因为某种原因(服务器系统重装,服务器间IP地址交换,DHCP,虚拟机重建),该IP地址的公钥改变了,当使用 SSH 连接的时候,会报错上图的那个错误,所以这个时候就中断了我们的自动连接。根据提示,是ssh 配置的问题,默认配置是 StrictHostKeyChecking yes 设置成no 就可以避免这个问题了。

echo "StrictHostKeyChecking no" >> ~/.ssh/config

另外一个解决办法就是从 ~/.ssh/known_hosts 中删除对应域名的hosts,但这样似乎治标不治本,所以建议采取第一种方式。

参考资料

  1. http://www.worldhello.net/2010/04/08/1026.html
点赞