编程 OpenSSH 10.0:sshd 默认禁用有限域 DH,DSA 移除并拆出 sshd-auth

2026-09-20 21:02:41

OpenSSH 10.0:sshd 默认禁用有限域 DH,DSA 移除并拆出 sshd-auth

发布说明:OpenSSH 10.0。另有两个镜像链接:openssh.orgopenbsd.org

不兼容变更

DSA 签名算法移除

OpenSSH 10.0 移除弱 DSA 签名算法,完成 2015 年开始的弃用。依赖 ssh-dss 主机密钥或用户密钥的连接会失败。HostKeyAlgorithms 里加 ssh-dss 不会恢复,因为支持已从代码中移除,只能提前轮换密钥。

scp/sftp 调用 ssh 时传 ControlMaster no

scp(1) 和 sftp(1) 在调用 ssh 时传 ControlMaster no。当 ControlMaster 设置为 yes/auto 时,这会禁用隐式会话创建。已有 multiplexing 会话不受影响,仍可复用。

版本号 10.0 与 OpenSSH_1* 匹配陷阱

10.0 的 banner 是 SSH-2.0-OpenSSH_10.0。用 OpenSSH_1* 这类模式匹配版本的软件可能把 10.0 误判为 1.x。升级前检查自动化脚本、配置管理、巡检工具里的版本正则。

sshd 认证阶段拆到 sshd-auth

sshd(8) 把用户认证阶段代码从 per-connection 的 sshd-session 二进制移到新的 sshd-auth 二进制。这样 pre-auth 攻击面拥有独立地址空间;认证完成后卸载认证代码,节省少量运行时内存。多数情况下不可见,但部分日志现在来自 sshd-auth 而不是 sshd-session。下游发行版打包时需要包含 sshd-auth。日志采集、fail2ban、审计规则如果按进程名前缀匹配,需要同步调整。

sshd 默认禁用有限域 DH

sshd(8) 默认禁用有限域(modp)Diffie-Hellman 密钥交换,从默认 KEXAlgorithms 中移除 diffie-hellman-group*diffie-hellman-group-exchange-*。客户端不变,继续默认支持这些算法。有限域 DH 要达到与 ECDH 或后量子算法相同的安全级别,速度慢、开销大。

moduli 回退行为变化

DH Group Exchange KEX 在 moduli 文件存在、但客户端请求范围内没有模数时,不再隐式回退到编译内置组。只有 moduli 文件完全不存在时才回退。moduli 文件被错误编辑可能导致连接失败。bz#2793。

自 OpenSSH 9.9 以来的变更

  • ssh(1):默认密钥协商算法改为混合后量子 mlkem768x25519-sha256。该算法抗量子计算机,强度不低于 curve25519-sha256,已由 NIST 标准化,比之前的默认算法更快。
  • 默认 cipher 顺序:chacha20-poly1305、AES-GCM、AES-CTR。
  • ssh(1)、sshd(8):ssh_config 和 sshd_config 增加 Match version,例如 Match version OpenSSH_10.*
  • sshd(8):sshd_config 增加 session type,可匹配 shell/exec/subsystem/none。
  • 少量安全修复和 bug 修复。

升级前自查

  • ssh -Q kex 查看当前支持的 KEX,确认是否有客户端依赖 diffie-hellman-group*
  • ssh -Q key 确认主机密钥算法列表,DSA 已不在其中。
  • 检查 moduli 文件是否存在、内容范围是否正确,避免请求范围无模数触发连接失败。
  • 确认打包流程和容器镜像包含 sshd-auth
  • 检查日志、监控、fail2ban 规则对 sshd-session 前缀的依赖。
  • 检查版本匹配正则,避免 OpenSSH_1* 把 10.0 误判成 1.x。

配置片段

sshd 需要兼容只支持有限域 DH 的旧客户端时,在 sshd_config 中显式加回:

# 在默认 KEX 基础上追加 group14
KexAlgorithms +diffie-hellman-group14-sha256

如果需要 group-exchange:

KexAlgorithms +diffie-hellman-group-exchange-sha256

客户端侧,若旧服务器只提供 DSA 主机密钥,10.0 无法通过 HostKeyAlgorithms 恢复,因为 DSA 支持已彻底移除,需要先轮换主机密钥。显式指定现代主机密钥算法:

HostKeyAlgorithms ssh-ed25519,rsa-sha2-512,rsa-sha2-256
复制全文 生成海报 OpenSSH SSH 运维 安全 配置

推荐文章

程序员茄子在线接单