
除了版本标签之外, OpenSSH 10.1 巩固了 10 系列开始的路径:向后量子密码学的迁移、使用 DSCP 实现 QoS 现代化,以及强化历史敏感领域(代理、密钥、注册表和参数解析)。下文将介绍 全面回顾所有新功能 (以及它能增加价值的背景),以及如何毫无意外地采用它们的实用指南。
以下是 此版本的新增功能,也可在 官方说明.
发布亮点和背景
OpenSSH 10.1 正式版(2025-10-06)重点突出了三大板斧: 针对量子密码、DSCP 网络和输入清理的预防性安全。它还将具有高操作影响的具体变化联系起来:从代理套接字路由到 新的诊断体征.
该项目的重要提醒: 未来版本将忽略基于 SHA-1 的 SSHFP 日志而 ssh-keygen -r 现在默认仅使用 SHA-256 生成 SSHFP 指纹, 关闭弱哈希的大门 用于 DNSSEC 和主机密钥验证。
非后量子密码学警告和新的 WarnWeakCrypto 选项
OpenSSH 10.1 在连接协商密钥交换时引入警告 无法抵御后量子攻击目标是关注“先存储,后解密”的风险,并加速敏感环境中的转变。
这种行为受到控制 警告弱加密 (在 ssh_config),默认情况下处于启用状态。如果您正在进行逐步迁移或维护旧版主机, 您可以选择性地禁用警告 使用 Match 块。例如:
匹配主机 unsafe.example.com WarnWeakCrypto no
密码学及其最新进展:PQC、混合算法和 SSHFP
在 10.0 中,客户端默认切换为使用 mlkem768x25519‑sha256,一种混合后量子算法,结合了 ML-KEM (KEM NIST FIPS 203)与 X25519。这种混合策略确保即使 PQ 端出现密码分析突破, 你的情况不会比经典 ECDH 更糟 因为该通道保留了X25519的强度。
在 10.1 中,除了上面解释的警告之外,还强化了过渡: OpenSSH 将来会继续忽略带有 SHA-1 的 SSHFP。;工具 ssh-keygen 已经发布了仅使用 SHA-256 的 SSHFP。在操作上,建议采取的措施是 以 SHA-256 格式重新生成并发布 SSHFP 指纹 为您的主人。
常见问题: 如果量子计算机还不能破解 SSH,为什么现在还要坚持呢? 因为攻击者可以今天捕获,明天解密。使用后量子 KEX 已经可以缓解这种风险。如果你担心 PQ 算法的成熟度,请记住 混合模式 保持经典的安全级别作为基础。
网络现代化:DSCP/IPQoS 和流量优先级
此版本整合了深度 QoS 改进。在客户端和服务器端, 交互式流量默认为 EF 类(快速转发),这有助于减少 Wi-Fi 和拥塞媒体的延迟。非交互式流量切换到使用 系统默认DSCP标记,而不提高优先级。
在实践中, ssh(1) 和 sshd(8) 动态变化 根据存在的通道类型使用的品牌:如果相同的连接结合了外壳和 sftp, 非交互式传输阶段 将在操作期间使用非交互值,并在适当的时候返回到 EF。这由键控制 IPQoS en ssh_config y sshd_config.
另外, 对旧版 IPv4 ToS 的支持正在被撤销 在 IPQoS 选项中(lowdelay, throughput, reliability 停止生效)。如果你仍在使用它们, 迁移到 DSCP 命名法 (例如。, ef, cs0, af11等)。
输入强化:用户、URI 和扩展
在安全部分,10.1 修复了一个微妙的情况,如果你用外部数据构建命令行,同时使用 带有 %r/%u 扩展的 ProxyCommand,攻击者可以潜入shell表达式。为了缓解这种情况, ssh(1) 现在禁止 CLI 传递或扩展用户中的控制字符,并且还会阻止 URI 中的空字符 ssh://.
兼容性注意事项:已放宽验证点以避免破坏合法案例。 配置文件中定义的文字用户名 (没有 %)扩展是免税的,因为本地配置被认为是可信的。
实时信号和信息:SIGINFO 和可见性
另一个实用的调试技巧: ssh(1) 和 sshd(8) 获得 SIGINFO 处理程序 记录活动频道和会话的状态。在生产环境中,这 促进流诊断、多路复用、转发和 X11 无需附加调试器或侵入性地增加详细程度。
同样的透明度,当证书认证失败时, sshd 现在记录了足够的信息来识别证书 (以及为什么被拒绝)。如果您使用 PKI 和用户/主机证书,这项改进 大大缩短解决时间.
ssh-agent 和密钥:套接字、清理和 PKCS#11
为了防止在限制安装的环境中交叉访问 /tmp、代理套接字(以及由 sshd) 塞 从 /tmp 移动到 ~/.ssh/agent。因此,权限有限的进程 /tmp 不再意外地从代理处继承使用您的密钥签名的能力。
这一变化还有另一个衍生:之前操作系统可以清理过时的套接字,现在 ssh‑agent 包含其自己的清理功能 来自旧套接字。此外,代理还添加了新的标志: -U y -u 控制启动时的清洁度, -uu 在清理时忽略主机名,以及 -T 强制历史位置 /tmp 如果你真的需要它。
在密钥平面中,客户端和代理 PKCS#11 令牌上托管的 ED25519 现已受支持如果您依赖 HSM 或加密密钥,您将获得灵活性而不会牺牲强度。
ssh‑add 和证书:自我清理过期
当您向代理添加证书时, 其到期宽限期现已设置为 5 分钟这个想法很简单:允许事务在队列中完成,然后, 自动删除代理证书。如果您需要完全控制流程, ssh‑add -N 禁用此行为。
RefuseConnection:客户端控制的断开连接
在某些情况下,您可能希望通过明确的消息从客户端本身中止连接(例如, 操作重定向或弃用通知). OpenSSH 10.1 添加了 拒绝连接 a ssh_config:如果在处理热段时遇到,客户端将因错误而终止,并且 显示您定义的文本.
代码质量和实时安全
团队继续清理代码库。10.1 列出了 内存泄漏已修复,Atomia 改进写作时 known_hosts 出席率高, 竞争条件已解决 在诸如 MaxStartups 或 X11 会话。
加密货币清理说明: 已删除对 XMSS 的支持 (实验性的,默认情况下不会)。为 后量子签名方案 未来版本中将会出现更成熟的版本。
可移植性和生态系统:PAM、FreeBSD、macOS、Android……
可移植性变化影响许多方面: PAM 环境中的额外检查 (例如确保用户在过程中不会改变),与 FreeBSD的 (tun 转发和兼容性), macos (对函数和标题的强大检测)和 安卓 (具有非空字段的结构密码)。
对于没有特定标准库的平台,还添加了兼容头文件,从而减少了 #ifdef 分散。最后,它们被提炼 seccomp 沙盒策略 在 Linux 上覆盖系统调用,例如 futex_time64 32 位版本,并添加了对 AWS‑LC 作为 OpenSSL/LibreSSL 的替代品。
QoS 实际应用:实际示例和 IPQoS 迁移
如果您使用旧的 ToS 别名 (lowdelay, throughput...), 现在他们将被忽视 您将看到一条建议使用 DSCP 的调试消息。典型的迁移方式是从 IPQoS lowdelay a IPQoS ef 用于交互式会话;如果你还进行大量 SFTP 操作,你可以 通过匹配定义配置文件 en ssh_config/sshd_config 分隔交通。
请记住,发动机 自动选择并更新 它根据开放渠道实时标记,因此大部分工作已经由 OpenSSH 为您完成。
在 Linux 上安装 OpenSSH 10.1(源)
虽然发行版集成了版本, 你可以从官方来源编译. 从项目镜像下载 tarball,解压并编译:
tar -xvf openssh-10.1.tar.gz
进入目录并 配置前缀和配置路由 如果你需要的话。例如:
cd openssh-10.1 ./configure --prefix=/opt --sysconfdir=/etc/ssh
编译安装 像往常一样(取决于权限,可能是超级用户):
使
make install
使用 PowerShell 在 Windows 上启用 OpenSSH
在现代 Windows 环境(Server 2019/Windows 10 1809+)中, 您可以将 OpenSSH 客户端和服务器作为系统功能进行安装。. 检查容量和状态:
Get-WindowsCapability-Online | 对象名称 -like 'OpenSSH*'
安装组件 根据需要:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
启动并启用SSH服务器服务,并检查入站防火墙规则:
启动服务 sshd 设置服务 -名称 sshd -StartupType'自动' 获取 NetFirewallRule -名称'OpenSSH-Server-In-TCP' -ErrorAction SilentlyContinue
要从另一个 Windows 或 Linux 主机连接,请使用标准客户端: ssh dominio\usuario@servidor. 首次访问时, 接受主机指纹 并使用您的密码进行身份验证。
操作指南:诊断和良好实践
对于具有用户/主机证书的环境, 利用改进的日志记录 否认 sshd 调试 CA 和扩展。如果会话卡住或怀疑多路复用, 推出 SIGINFO 在不提高全局日志级别的情况下列出活动通道的过程。
如果您依赖代理,请检查套接字现在位于何处(~/.ssh/agent)Y 激活自动清洁 在您的部署模型中。在共享或 NFS 工作站上,请考虑在必要时使用代理标志在路径中设置主机名哈希值。
最相关的错误修复
在 10.1 中这些问题已得到解决 X11 中的小问题 与心率缓解措施相结合(ObscureKeystrokeTiming),一个例子 MaxStartups 的会计处理不佳 这可能会淹没广告位,以及写作 known_hosts 现在完成了 在原子操作中 避免高并发情况下的行交错。
其他修复改进 加载密钥时的诊断、配置大小限制(从 256KB 到 4MB)的处理、审计输出以及本地转发和控制序列中的特殊情况。此外,来自 ssh -G y sshd -T.
建议的迁移清单
此快速列表 它包括项目本身建议的任务以及变化的结果:
- CRIPTO:检查你的
KexAlgorithms允许混合 PQ 并使用 SHA-256 生成新的 SSHFPssh-keygen -r. - 服务质量: 查看
IPQoS在客户端/服务器上;将旧式 ToS 迁移到 DSCP;利用 EF 进行交互式会话。 - 代理:将脚本和变量适配到
~/.ssh/agent;值由代理本身自动清理。 - 大型配置:如果生成批量配置,限制将增加到 4MB; 明智地运用它 并控制验证。
- 解析器:避免从不受信任的输入构建命令行;使用
config当用户名中有奇怪的情况时,使用文字表示本地人。
管理混合车队的人会欣赏 10.1 把安全挤压到最不受影响的地方 (解析器、代理、警告)同时 改善日常体验 (动态 QoS、SIGINFO、证书日志记录)。如果您已经使用 10.0 版本,则过渡非常简单;如果您之前使用的是 9.x 版本,请花些时间调整 DSCP,将 SSHFP 重新生成为 SHA-256,并启用混合 KEX,以在不牺牲性能的情况下保护自己免受量子威胁。