SSH 的安全性改进

GitHub 宣布将移除多项老旧 SSH 加密算法、停止支持基于 SHA-1 的 RSA 签名,并要求新上传的 RSA 密钥不小于 3072 位,同时开始支持抗量子密钥交换。这意味着 SSH 这条"代码推送通道"正在为后量子时代做安全升级。

一句话看懂:GitHub 宣布将移除多项老旧 SSH 加密算法、停止支持基于 SHA-1 的 RSA 签名,并要求新上传的 RSA 密钥不小于 3072 位,同时开始支持抗量子密钥交换。这意味着 SSH 这条”代码推送通道”正在为后量子时代做安全升级。

事件核心:发生了什么

根据 GitHub Changelog 公布的计划,此次调整包括四项内容:移除使用 SHA-1 的 ssh-rsa 签名类型(含相关证书);移除密钥交换算法 diffie-hellman-group-exchange-sha256;自 2026 年 10 月 14 日起,新上传的 RSA 密钥必须至少 3072 位;在 github.com 及带数据驻留的 GitHub Enterprise Cloud(美国区域除外)中新增后量子密钥交换方法 mlkem768x25519-sha256

时间线分为几个阶段:2026 年 10 月 14 日新密钥长度要求生效;11 月 4 日和 12 月 9 日两次”灰度演练”(brownout),临时下线待移除算法;2027 年 1 月 13 日正式移除 ssh-rsa 签名类型与旧密钥交换算法。GitHub Enterprise Server 将在 3.25 版本落地这些变更,后量子密钥交换则在 3.24 版本先行。

为什么重要

SSH 是开发者与代码托管平台之间最基础的信任通道,其加密强度直接关系到源码与凭据安全。SHA-1 早已被证明存在碰撞风险,移除它属于补历史欠账;而引入 ML-KEM(基于模块格的密钥封装机制)则是对”先收集、后解密”这一量子威胁的提前防御。对 GitHub 这类承载海量私有仓库的平台而言,密钥交换算法的换代往往比单个功能更新影响更广,因为它牵动整个开发者工具链的兼容性。

对用户/开发者/创作者的影响

如果远程仓库地址以 https:// 开头,此次变更完全不影响你。受影响的仅是通过 SSH 连接 Git 客户端的用户,以及使用未认证 Git 协议的 GitHub Enterprise Server 用户。

使用旧 RSA 密钥的人不必重新生成密钥,因为所有 RSA 密钥都能配合 SHA-2 签名,关键是客户端软件要支持 rsa-sha2-256rsa-sha2-512。原文给出的最低版本参考包括:OpenSSH 7.2p1、JSch 0.1.66(特定 fork)、TeamCity 2021.2.3、Go SSH 0.16.0、libssh2 1.11.0、PuTTY 0.82。若无法升级,可改用 Ed25519 或 ECDSA 密钥,GitHub 表示这些密钥长期有效。需要注意的是,ssh-rsa 作为密钥类型泛指所有 RSA 密钥,作为签名类型才特指 SHA-1,两者容易混淆。

值得关注的后续

一是看主流 SSH 客户端与 CI/CD 工具是否在两次 brownout 前完成适配,避免构建流水线在 2027 年 1 月突然中断;二是观察后量子算法在 GitHub 之外的采用速度,其他代码托管与云厂商是否跟进;三是关注美国区域数据驻留实例何时开放 ML-KEM 支持,这关系到跨国团队的合规与性能选择。

来源:GitHub Changelog

celebrityanime
celebrityanime
文章: 25030

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注