透過 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 主機嘿。

相關內容