Sshd
如何在不更改伺服器密鑰的情況下升級 SSHD?
所以…我們需要升級 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.
僅僅升級 sshd 通常不會替換主機密鑰。所以是的,只需升級它,它應該沒問題。
注意:您通常不需要這個,但如果您想安全起見,您可以創建 ssh 主機密鑰的備份,並在升級系統後將它們複製回來。通常,您必須備份
/etc/ssh/ssh_host*
. 如果出現問題,您可以稍後恢復文件。
我意識到這是一個老問題,但我認為這是對未來搜尋的有效補充。升級您的 sshd 不會導致重新創建主機密鑰,因此您可以升級。但是,升級您的伺服器可能會導致創建新的主機密鑰。當 ssh 客戶端無法辨識伺服器的主機密鑰時,會出現您描述的消息,因此任何更改主機密鑰的操作都會導致此問題。
解決此問題的一種方法是改造您的 ssh 使用以使用證書而不是密碼和密鑰。雖然這確實需要一些工作和一些改造,但您希望更好地簽署您的伺服器是值得的。這裡有一個很好的指南:
http://neocri.me/documentation/using-ssh-certificate-authentication/
基本上,您所做的是為伺服器創建一個 CA,為使用者創建一個 CA,然後使用它們分別對客戶端和伺服器進行身份驗證。如果您使用使用者名/密碼登錄,您仍然會看到上述消息,但對於使用證書登錄的任何人,唯一重要的是伺服器主機證書由伺服器 CA 簽名。