通过 ssh 连接到我的 VPS 时出现“有问题的密钥”警告

通过 ssh 连接到我的 VPS 时出现“有问题的密钥”警告

当我执行:

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。

相关内容