我正在尝试将我的 ssh 服务器从 2048 位 RSA 密钥升级到更大的密钥,因为建议尽快淘汰 2048 位密钥。
我生成了一个新密钥,然后将其添加到 sshd 配置中,如下所示:
HostKey /etc/ssh/ssh_host_rsa_key (旧的 2k 位密钥第一) HostKey /etc/ssh/ssh_host_rsa4096_key (新的较大密钥第二)
重新启动后sshd
,我通过 ssh 连接到主机,我没有收到标识更改警告,但是新的也没有缓存在~/.ssh/known_hosts
. 如果我以相反的顺序放置线条,我会收到标识更改警告。同样,当我添加一个 ed25519 密钥时,无论我把它放在什么位置,客户端都不会将新密钥添加到已知的主机文件中。
这似乎使 SSH 主机密钥轮转成为不可能——但很难相信情况确实如此,但考虑到安全性通常需要升级密钥。
我知道您可以只交换密钥,然后每个客户端都需要运行ssh-keygen -R
以删除旧密钥,然后手动验证并接受新密钥 - 但这是一个真正的痛苦,特别是如果您有很多客户端连接或不管理所有的客户。更不用说,如果您不管理客户端,他们很有可能实际上不会检查主机密钥,而是直接按 Y 键——因此,提高安全性的尝试实际上可能会让您面临人为攻击——相反,中间人攻击。
有什么方法可以使 SSH 主机密钥升级工作吗?也就是说,客户端应该学习新的更安全的密钥(并希望取消学习过时的密钥)。并且没有给出主机密钥更改的中间人警告。
Jak*_*uje 14
从 OpenSSH 6.8 开始支持主机密钥轮换(客户端和服务器都在此版本中增加了支持)。
所以这个过程应该是这样的:
HostKey newkey
(在现有密钥之后)生成并添加新密钥到/etc/ssh/sshd_config
sshd
UpdateHostKeys yes
在其配置中进行设置(全局或每个主机)sshd_config
并重新启动sshd
新的足够多的客户将能够拿起新的钥匙。默认情况下不启用此功能,可能是因为它很新,很快就会显示出一些安全问题。不过这几天用起来应该没问题。
归档时间: |
|
查看次数: |
2441 次 |
最近记录: |