资讯 OpenSSH 10.6 关闭 LZ77 字典编码:压缩还在,但不再能当保密手段

2026-10-25 21:07:23

OpenSSH 10.6 关闭 LZ77 字典编码:压缩还在,但不再能当保密手段

OpenSSH 10.6/10.6p1 于 2026-10-06 发布(发布说明、公告邮件)。这一版最需要留意的改动是:ssh(1) 与 sshd(8) 默认关掉了 LZ77 字典编码;命令行输入的用户名新增字符限制;scp -R 进入弃用流程。

发布节奏:修复优先于攒版本

OpenSSH 团队近期收到大量安全 bug 报告,其中不少来自 AI 模型或借助 AI 完成。许多报告在现实威胁模型下没有实际影响;只要配合人工分诊、分析、测试用例和修复补丁,团队仍然欢迎这类报告。团队还提到一种情况:AI 工具发现的问题,后来又被另一位研究者独立发现;这意味着不上报的攻击者同样可能找到这些 bug。因此,OpenSSH 暂时改为更频繁地发布版本,尽快把修复送到用户手里,而不是攒到下一个计划版本。

未来弃用公告

  • scp(1) 的 -R:开始弃用。-R 会在远端主机上执行 scp 来实现远端到远端复制,是一种脆弱的优化;它要求远端主机上有可用凭据,并且当远端 shell 的引用规则与客户端预期不一致时会带来安全风险。在 10.6 中,该选项仍然可用,但会向 stderr 输出弃用警告;在未来的版本中,它将被忽略,回落到默认行为(经由运行 scp 的主机中转复制)。
  • sshd(8):对既不允许传递文件描述符、又需要 root 权限分配 PTY 的平台,支持将在未来版本移除。发布说明中点名了 SCO OpenServer 5 与 QNX 6。

潜在不兼容变更

  • ssh(1)、sshd(8):受下述安全改动影响,压缩的效果会变差。
  • ssh(1):命令行上输入的目标用户名检查更严格,包含反斜杠 \ 和美元符 $ 的用户名会被拒绝。由配置文件中 User 指令指定的用户名不受这一限制。
  • sshd(8):在不支持文件描述符传递、且分配 PTY 需要 root 的平台上,GatewayPorts 与 StreamLocalForwarding 会被强制禁用。

安全

禁用 LZ77 字典编码。 针对 Fabian Bäumer 与 Marcus Brinkmann 的预印本《Crossing the Streams: SSH Plaintext Recovery via a Common Compression Context in Multiplexed Channels》(arXiv:2609.07709,2026),sshd(8) 与 ssh(1) 关闭了 LZ77 字典编码。论文描述的是一种选择明文攻击:会话的压缩字典在所有通道间共享,攻击者通过一个通道与会话字典交互,就能从另一个通道恢复秘密。具体机制是:LZ77 用指向会话编码器搜索缓冲区的反向引用来替换重复字符串,而这个缓冲区跨通道共享,因此攻击者可控的输入会以可识别的方式反映到实际传输密文的总长度上。文档此前已建议不要在同时承载可信与不可信流量的连接上启用压缩。这次改动削弱了 Compression 选项的效果;建议改用 SSH 之上的应用层压缩,通常压缩率更高,并且不受这类攻击影响。需要注意:Compression 选项本身还在,只是不能再被当作保密手段使用。

命令行用户名注入。 ssh(1) 禁止命令行用户名包含 $ 和 \,避免来自不可信来源的用户名经由 ProxyCommand、Match exec 等进入 shell 上下文造成注入。ssh_config 中 User 指令指定的用户名不受此限制。

sftp 路径校验。 sftp(1) 会更严格地校验服务端返回的路径,避免服务端返回的路径把递归复制诱导到目标目录之外写入(报告与补丁:Junghoon Cho)。

GSSAPI 凭据处理。 sshd(8) 在启用 GSSAPIAuthentication 时,只在认证成功后才保存 GSSAPI 凭据,避免失败尝试留下的凭据在后续认证成功时被使用(Moritz Theile)。同时,sshd(8) 在认证前重置 GSSAPIAuthentication,避免一次尝试的状态与后续尝试混淆。

升级自查清单

  • 使用了 ControlMaster/多路复用,同时开了 Compression:压缩效果会明显变差。如果原本把 SSH 压缩当作降低明文可观察性的手段,这条路已经不可行,敏感流量应改用应用层压缩。
  • 脚本里 ssh user@host 的用户名带 $ 或 \:10.6 起会被拒绝。把用户名写进 ssh_config 的 User 指令可以绕开这一限制(该路径不受限制)。
  • 自动化里用 scp -R 做远端到远端复制:10.6 仍可用,但 stderr 会出现弃用警告,需要规划迁移到默认的中转复制。
  • 依赖 sftp 递归复制:服务端返回的路径现在会被更严格校验,异常路径会直接报错。
  • GSSAPI 环境:认证失败后重试不再复用上一次尝试的凭据;如果流程依赖残留的 GSSAPI 状态,需要重新验证。
  • 运行在 SCO OpenServer 5 / QNX 6 一类平台:GatewayPorts 与 StreamLocalForwarding 已被强制关闭。

相关链接

  • 发布说明:
  • 10.6 release 文本:
  • 论文预印本:
  • 公告邮件:
复制全文 生成海报 OpenSSH 安全 运维 SSH

推荐文章

程序员茄子在线接单