所以...我们需要升级 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 签名的。