
所以...我們需要升級 SSHD。我們怎麼能做到這一點而不出現人們(透過 ssh 登入)會看到以下訊息的問題:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
0e:a1:b1:40:85:a2:a7:03:17:1b:52:8f:10:c7:b3:d0.
Please contact your system administrator.
Add correct host key in /home/USERNAME/.ssh/known_hosts to get rid of this message.
Offending key in /home/USERNAME/.ssh/known_hosts:13
RSA host key for [192.168.1.1]:22 has changed and you have requested strict checking.
Host key verification failed.
答案1
僅升級 sshd 通常不會取代主機金鑰。所以是的,只要升級它應該沒問題。
注意:您通常不需要這樣做,但如果您想安全起見,您可以建立 ssh 主機金鑰的備份,並在升級系統後將它們複製回來。通常您必須備份/etc/ssh/ssh_host*
。如果出現問題,您可以稍後恢復檔案。
答案2
我意識到這是一個老問題,但我認為這是未來搜尋的有效補充。升級 sshd 不應導致重新建立主機金鑰,因此您可以進行升級。但是,升級伺服器可能會導致建立新的主機金鑰。當 ssh 用戶端無法識別伺服器的主機金鑰時,就會出現您所描述的訊息,因此任何更改主機金鑰的操作都會導致此問題。
解決這個問題的一種方法是重塑 ssh 的使用方式,使用憑證而不是密碼和金鑰。雖然這確實需要一些工作和一些改造,但如果您想更好地對伺服器進行簽名,這是值得的。這裡有一個非常好的指南:
http://neocri.me/documentation/using-ssh-certificate-authentication/
基本上,您所做的就是為伺服器建立一個 CA 並為使用者建立一個 CA,然後使用它們分別對客戶端和伺服器進行身份驗證。如果您使用使用者名稱/密碼登錄,您仍然會看到上述訊息,但對於任何使用憑證登入的人來說,唯一重要的是伺服器主機憑證是由伺服器 CA 簽署的。