当我执行:
ssh root@myVPS
我收到下一个警告:
Warning: the RSA host key for 'myVPS' differs from the key for the IP address 'xxx.xx.xxx.xx'
Offending key for IP in /home/manolo/.ssh/known_hosts:1
Matching host key in /home/manolo/.ssh/known_hosts:2
Are you sure you want to continue connecting (yes/no)?
如果我输入“yes”,一切正常,但我不知道为什么会抛出此警告。有没有什么建议可以说明为什么会抛出此警告以及如何避免?
答案1
最有可能的是,您曾经重新安装过 VPS,并保留了主机名和/或 IP 地址。重新安装时,VPS 的主机密钥会重新生成,由于它与您的 中的密钥不同~/.ssh/known_hosts
,因此会显示警告,以便您检测问题。这样做是为了防止您连接到完全不同的系统来替换合法主机,例如收集密码。
如果发生这样的事情,只需从文件中删除有问题的密钥known_hosts
,一切都会好起来,但如果您不知道这样的重新安装,您必须进一步调查以了解密钥不同的原因。
答案2
我遇到了同样的问题,这个问题很容易解决。请打开你的known_hosts文件vi .ssh/known_hosts
并搜索你的服务器名称。如果你发现主机密钥存在但没有IP地址,那么将你的IP添加到该文件中,这样就可以解决你的问题了。之前:
myVPS ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsIfCSqA2rSlTvH8AMrMjpD66y5dOsYOPp30AXYGAEAFkVBs1+51lbRNyiFenpbxOyQjyvpgVJdkC4kqgG66xE6IPBrqpUFL3KjbUCTZ8sNHWn+I89bAMWDzGEiqaad/powDxgZgFe74bV82Se1igbFmHlHwwb7DEAcjXh34XbcMgJ0vIExJqPV1zccKkCXhstQy7av0+I7GRz5wIbYiIFMungKIhX3upwQOzyW/E1RDmq89BRv1g2ch1xsKK5OpNjCCFP2OSYPybJmFXhjOWI7LUdFASmaw5Z1az9LLpLKQePQ4mWsL/ON8Z9uvzhQig3hdQ/cnrAsRLShn4rJratw==
添加IP后:
myVPS,198.51.100.42 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsIfCSqA2rSlTvH8AMrMjpD66y5dOsYOPp30AXYGAEAFkVBs1+51lbRNyiFenpbxOyQjyvpgVJdkC4kqgG66xE6IPBrqpUFL3KjbUCTZ8sNHWn+I89bAMWDzGEiqaad/powDxgZgFe74bV82Se1igbFmHlHwwb7DEAcjXh34XbcMgJ0vIExJqPV1zccKkCXhstQy7av0+I7GRz5wIbYiIFMungKIhX3upwQOzyW/E1RDmq89BRv1g2ch1xsKK5OpNjCCFP2OSYPybJmFXhjOWI7LUdFASmaw5Z1az9LLpLKQePQ4mWsL/ON8Z9uvzhQig3hdQ/cnrAsRLShn4rJratw==
答案3
您必须从 known_hosts 文件中清除主机名和 IP 地址,您可以像这样进行:
ssh-keygen -f ~/.ssh/known_hosts -R [somehostname.net]
ssh-keygen -f ~/.ssh/known_hosts -R [123.123.123.123]
只需将其替换somehostname.net
为您要清除的主机的主机名或域名,并将 IP 地址替换为主机 IP 地址(保留方括号)。如果成功,您将看到如下消息:
/home/yourname/.ssh/known_hosts updated.
Original contents retained as /home/yourname/.ssh/known_hosts.old
如果不起作用,请尝试相同的操作,但不使用方括号,并仔细检查主机名和 IP 地址是否正确:
ssh-keygen -f ~/.ssh/known_hosts -R somehostname.net
ssh-keygen -f ~/.ssh/known_hosts -R 123.123.123.123
如果主机的 SSH 端口在不同的端口上,比如说 2222 而不是 22,那么只需像这样添加端口:
ssh-keygen -f ~/.ssh/known_hosts -R [somehostname.net]:2222
ssh-keygen -f ~/.ssh/known_hosts -R [123.123.123.123]:2222
答案4
如果你遇到如下错误:
Warning: the RSA host key for 'myVPS' differs from the key for the IP address 'xxx.xx.xxx.xx'
Offending key for IP in /home/manolo/.ssh/known_hosts:1
Matching host key in /home/manolo/.ssh/known_hosts:2
Are you sure you want to continue connecting (yes/no)?
只需删除 known_hosts 文件中的第 1 行。然后下次运行 git 命令时,它将添加 hew RSA 主机 hey。