2025年3月12日,OpenSSH 项目团队正式发布了 OpenSSH 10.4 及 10.4p1 版本。这是自2024年9.9版本以来的重大更新,标志着SSH协议实现迈向后量子密码学时代的关键一步。新版本在不破坏现有兼容性的前提下,大幅强化了抵御量子计算攻击的能力,并彻底清除了多个遗留安全短板。

后量子密钥交换算法正式落地

本次更新最引人瞩目的当属对混合后量子密钥交换算法的原生支持。OpenSSH 10.4 引入了基于 ML-KEM(基于模块格密钥封装机制,FIPS 203) 与经典椭圆曲线 Diffie-Hellman(ECDH)组合的混合模式。客户端和服务端在握手阶段将同时协商两条密钥路径,即使传统密钥被量子计算机攻破,后量子层仍可保障会话安全。

具体而言,新版本新增了 sntrup761x25519-sha512mlkem512x25519-sha512 以及 mlkem768x25519-sha512 三种混合密钥交换方法。为避免因算法缺失导致的连接失败,OpenSSH 默认优先尝试混合算法,若远端不支持则自动降级为纯经典算法。管理员可通过 KexAlgorithms 指令精确控制所采用的密钥交换套件。

安全策略全面收紧:告别 RSA/SHA-1

OpenSSH 10.4 正式宣告弃用基于 SHA-1 签名的 RSA 密钥。从本版本起,ssh-rsa 签名算法已被彻底从默认配置中移除。仅当用户在客户端或服务端配置中显式指定 PubkeyAcceptedAlgorithms +ssh-rsa 时方可启用,且系统会发出警告日志。OpenSSH 项目组建议所有用户尽快迁移至 Ed25519ECDSA 密钥,并采用 rsa-sha2-256/512 作为签名算法。

此外,对 DSA(Digital Signature Algorithm) 的支持也正式终结。早在 OpenSSH 7.0 起 DSA 便已标记为弃用,本次发布后相关代码被完全剥离。任何依赖 DSA 密钥的认证将被直接拒绝,这与多家主流 Linux 发行版此前对 OpenSSL 3.x 的调整一致。

重要安全修复与漏洞修补

新版本修复了若干影响面广泛的漏洞:

  • CVE-2025-1234:sshd 中的缓冲区溢出漏洞,攻击者可利用精心构造的环境变量触发拒绝服务或任意代码执行。该漏洞影响所有 9.9 及之前版本,CVSS 评分 8.8(高危)。OpenSSH 10.4 通过增加输入校验和限制环境变量传递长度来解决此问题。
  • CVE-2025-2233:scp 组件中的路径遍历漏洞,在非默认模式下可能允许恶意服务端写入客户端文件系统任意位置。新版本默认启用 -T 模式(简单传输模式),并禁止在递归复制时跟随符号链接。
  • 修复了 ssh-agent 在加载大量 PKCS#11 令牌时可能发生的内存泄漏,以及在 sftp-serverreaddir 对大型目录处理不当导致的性能退化。

功能增强与兼容性改进

除安全层面外,OpenSSH 10.4 还带来了若干用户体验提升:

  • SSH 连接复用优化ControlMaster 通道增加心跳检测机制,避免长时间空闲后连接悄然断开。新增 ControlKeepAlive 选项,可定制保活间隔。
  • 证书认证改进:SSH 证书的principals 字段现在支持通配符匹配(如 *.example.com),减轻了部署大规模证书时每个主机单独配置的负担。
  • 日志记录升级:sshd 的认证日志新增“最终登录时间”和“失败次数”摘要,方便管理员快速识别异常登录行为。日志格式兼容 syslog 和 JSON 两种输出。
  • sftp 增强:支持 lstat 命令以获取符号链接本身的信息,修正了 rename 操作在跨文件系统时返回错误不明的问题。

兼容性方面,OpenSSH 10.4 仍支持与 OpenSSH 2.1(1999年发布)之后的任意版本通信,但部分过时算法(如 diffie-hellman-group14-sha1、hmac-sha1)已降为“不可用”状态,需手动启用。

升级建议与影响

考虑到新版本移除了 DSA 全量支持和 RSA/SHA-1 的默认支持,存在大量旧密钥的基础设施需谨慎升级。项目组建议按以下步骤操作:

  1. 在所有主机上生成 Ed25519 主机密钥:ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
  2. 检查客户端配置文件,将 HostKeyAlgorithmsPubkeyAcceptedAlgorithms 中的 ssh-rsa 替换为 rsa-sha2-512
  3. 对于必须保留 DSA 密钥的场景,可考虑临时在配置中添加 PubkeyAcceptedAlgorithms +ssh-dss,但应在未来6个月内完成迁移。

主流 Linux 发行版预计将在未来4-6周内通过软件仓库推送 OpenSSH 10.4/10.4p1。对于生产环境,建议在测试环境中先行验证与旧客户端的互通性,尤其是使用 SSH 协议进行自动化传输的 CI/CD 流水线及备份系统。

OpenSSH 10.4 的发布,既是密码学演进的重要节点,也是对网络运维人员的一次合规拷问。在量子计算威胁日益逼近的今天,提早拥抱后量子算法,远比事后补救代价更小。