HostKeyAlgorithms 的升级路径

HostKeyAlgorithms 的升级路径

我想将HostKeyAlgorithms所有 SSH 连接的默认设置更改为 优先ssh-ed25519ecdsa-sha2-nistp256。但我的文件中目前有ecdsa-sha2-nistp256许多主机的主机密钥known_hosts(大约 70 个)。当我使用新设置连接到这样的主机时,我收到的消息与有人替换了该主机上的主机密钥时相同:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:rqhdlN+Qe/GJeWoj3pyhLLSnzSCz68ZA7ds+mG4iZ7o.
Please contact your system administrator.
Add correct host key in [...]/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in [...]/.ssh/known_hosts:52
ED25519 host key for [...] has changed and you have requested strict checking.
Host key verification failed.

现在我不想从我的known_hosts文件中删除所有这些主机,并在下次连接时接受“新”的 ED25519 密钥。相反,我希望有一种方法可以继续使用该文件的现有内容。有什么办法吗?例如,即使不使用首选算法,也可以回退到已知的主机密钥。或者有没有一种自动替换所有这些条目的方法?

答案1

我回答过类似的问题Unix简而言之,在 OpenSSH 6.8+ 中有一个选项UpdateHostKeys,它告诉你的客户端它应该获取服务器提供的所有主机密钥。

这应该可以解决你的问题。

相关内容