OpenSSH 于2026年10月6日发布 10.6 及可移植版 10.6p1,加入命令行用户名限制并调整压缩方式。官方发行说明还预告将弃用 scp -R,但本版本并未停用该复制功能。

同一用户名是否被拒绝,取决于输入途径

如果自动化通过命令行传入目标用户名,以前允许的输入现在可能被拒绝。ssh 现在会拒绝包含反斜杠(\)或美元符号($)的命令行用户名。

但通过配置文件 User 指令指定的用户名不受此限制。因此,若将此变更理解为在所有配置途径中禁止这些字符,就会误判其适用范围。

这一变更针对的是命令注入风险:不可信的用户名可能经由 ProxyCommand 或 Match exec 等途径进入 shell 命令。User 指令的例外并不意味着所有在 shell 中处理用户名的方式都安全。

scp -R 进入警告阶段,LZ77 压缩已禁用

scp -R 用于在远程主机上运行 scp,从而在远程主机之间复制文件。它在 10.6 中仍可使用,但会向标准错误输出弃用警告。

未来版本计划忽略该选项,改用经过发起复制的客户端主机的默认路径。变更时间尚未确定。

OpenSSH 给出的原因是远程主机需要具备认证手段,以及 shell 引号处理不一致。当前新增警告与未来改变数据传输路径是两个独立阶段。

压缩变更则从本版本起生效。ssh 和 sshd 禁用了通过查找重复数据来压缩内容的 LZ77 字典编码器。

发行说明指出,同一 SSH 连接中的多个逻辑通信通道会共享压缩字典。攻击者可向一个通道注入自行选择的内容,并观察加密传输长度的变化,以推测另一通道中的秘密信息。OpenSSH 表示,这项应对措施会降低压缩效果,并建议在可行时使用应用层压缩,但未提供吞吐量或 CPU 使用率变化的实测数据。

部分平台还受到转发限制。适用条件是:不支持文件描述符传递,即无法在进程之间传递已打开文件的引用,同时分配伪终端(PTY)需要 root 权限。

在这些条件下,认证后的 sshd-session 会保留 root 权限,可能绕过针对登录用户的管控。因此,与端口和本地套接字转发有关的 GatewayPorts 和 StreamLocalForwarding 选项会被强制禁用。

发行说明列出的受影响对象包括 QNX 6、SCO OpenServer 5,以及过去使用 --disable-fd-passing 构建的版本等。不过,10.6 也移除了这一构建配置选项本身。该限制并不适用于所有服务器;若无法找到替代方案,未来可能停止支持相关平台,但也没有确定时间表。

上述变更依据官方发行说明,并非实际升级或性能复现的结果。仅凭压缩效果下降,不能断定所有任务的吞吐量都会降低或 CPU 使用率都会上升。

OpenSSH 此前就不建议在混合可信与不可信流量的连接中使用压缩。将所述攻击条件直接套用于所有压缩会话,也扩大了其适用范围。

各发行版是否提供相应软件包、是否已纳入补丁,仍需另行确认。仅凭此次发布,无法确定统一的升级期限或对实际生产环境的影响。

升级前检查自动化的输入与路径

检查范围可从自动化实际使用的功能入手缩小。在生成目标用户名的环节,同时检查是否包含 $ 或 \,以及是否通过命令行传入,就能区分此次输入限制的影响。

复制任务可检查是否使用 scp -R,以及如何处理标准错误中的警告。如果自动化将警告视为失败,即使复制功能仍然保留,也可能受到影响。

依赖 SSH 压缩的任务,可在实际数据和连接条件下确认影响。符合上述条件的旧服务器,则需要同时确认其构建是否支持文件描述符传递,以及分配 PTY 所需的权限。

这些是用于确定变更影响范围的检查建议,并非已执行的实验或已观察到的输出。

后续值得关注的是 scp -R 何时从警告转为实际路径变更,以及压缩调整对各项任务的影响。目前,与其怀疑整个 SSH 的兼容性,不如依据输入途径和所用功能确定检查范围。

OpenSSH 10.6 的自动化检查,首先在于区分已立即生效的用户名与压缩变更,以及仍处于警告阶段的 scp -R 路径变更。