运行 OpenSSH_9.2 的 Debian 12 Bookworm 仅允许 rsa-sha2-512、rsa-sha2-256 和 ssh-rsa 服务器主机密钥算法

运行 OpenSSH_9.2 的 Debian 12 Bookworm 仅允许 rsa-sha2-512、rsa-sha2-256 和 ssh-rsa 服务器主机密钥算法

在最近从 Debian 11 升级的 Debian 12 Bookworm(运行 OpenSSH_9.2)上,只有rsa-sha2-512rsa-sha2-256 服务器主机密钥算法默认可用。sshd_configHostKeyAlgorithms +additional-algorithm-to-use中的设置(本身非常基础)仅允许添加SSH-RSA协议但其他的则不然。HostKeyAlgorithms 的手册页将以下内容列为默认设置(我希望开箱即用):

对可用算法的查询ssh -Q HostKeyAlgorithms返回:

例如,当尝试使用从同一主机进行连接时ssh localhost -oHostKeyAlgorithms=ecdsa-sha2-nistp256 -vvv,我得到了"Unable to negotiate with 127.0.0.1 port 22: no matching host key type found. Their offer rsa-sha2-512,rsa-sha2-256,ssh-rsa 我在本地安装了一个简单的 Debian 12 VM 来比较行为,当我运行相同的命令时,协商成功。

我非常感谢关于如何使其他主机密钥算法可用的建议。

答案1

根据 dave_thompson_085 发布的评论,我采取了以下步骤来修复该问题(以 root 用户身份):

  1. 备份位于的当前密钥文件/etc/ssh/
  2. 从中删除当前密钥文件/etc/ssh/
  3. 运行ssh-keygen -A以重新生成主机密钥
  4. 为所需的其他密钥类型生成密钥。例如ssh-keygen -q -N "" -t ecdsa-sha2-nistp384 -f /etc/ssh/ssh_host_ecdsa_sha2_nistp384_key
  5. 确保对于要使用的每种密钥类型,文件中都有一个与/etc/ssh/sshd_config主机密钥文件名和位置匹配的 HostKey 条目。例如HostKey /etc/ssh/ssh_host_ecdsa_key
  6. 指定要在文件中使用的其他非默认密钥/etc/ssh/sshd_config。例如HostKeyAlgorithms +ssh-rsa。逗号分隔列表可用于添加更多密钥。在这种情况下,仅为了实现所需的向后兼容性而添加 ssh-rsa。
  7. 重启 sshd

注意:即使某些功能可以启用,也并不意味着应该启用它,即使它看起来是最简单的解决方案。请检查它是否满足您所需的安全级别。

相关内容