我正在尝试将ssh服务器从2048位RSA密钥升级到更大的密钥,因为建议尽快淘汰2048位密钥。
我生成了一个新密钥,然后将其添加到sshd配置中,如下所示:
HostKey / etc / ssh / ssh_host_rsa_key (旧的2k位密钥在前) HostKey / etc / ssh / ssh_host_rsa4096_key (新的较大键2nd)
重新启动后sshd
,我将切换到主机,没有收到标识更改警告,但是新的标识也未缓存在中~/.ssh/known_hosts
。如果我以相反的顺序放置这些行,则会收到标识更改警告。同样,当我添加ed25519密钥时,无论我按什么顺序输入,客户端都不会将新密钥添加到已知主机文件中。
这似乎使SSH主机密钥无法翻转-很难相信确实如此,但是,考虑到常规的安全性需要升级密钥。
我知道您可以交换密钥,然后每个客户端都需要运行ssh-keygen -R
以删除旧密钥,然后手动验证并接受新密钥,但这确实很麻烦,特别是如果您有许多客户端连接或不进行管理所有的客户。更不用说,如果您不管理客户,那么他们很有可能不会实际检查主机密钥,而是直接点击Y,因此提高安全性的尝试实际上可能会让您接触到中间攻击。
有什么方法可以使SSH主机密钥升级起作用?也就是说,客户应该学习新的更安全的密钥(并希望也不要学习过时的密钥)。并且在没有提供主机密钥的情况下更改了中间人警告。
请看看这个。尽管它不能为您现在想要的解决方案提供解决方案,但它可能会帮助您将来实现最终目标。
—
rda