WARNING: connection is not using a post-quantum key exchange algorithm

最近执行 SSH 命令的时候一直警告:

** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
-> % ssh -V
OpenSSH_9.6p1 Ubuntu-3ubuntu13.14, OpenSSL 3.0.13 30 Jan 2024

原因

OpenSSH 9.5+ 客户端支持后量子密钥交换算法(如 sntrup761x25519-sha512),但远程服务器尚未支持,连接回退到传统算法,因此发出警告。

传统加密(RSA、ECC)依赖经典计算机难解的数学问题;量子计算机成熟后可能破解。攻击者可先截获并保存加密流量,待日后解密(store now, decrypt later)。

当前连接仍安全,警告针对的是未来风险,并非已被破解。

处理办法

如果不想忽略这个提示,有两个处理办法:

  1. 升级服务端 OpenSSH,启用后量子算法。
  2. 可以通过在 ~/.ssh/config 中设置 WarnWeakCrypto no-pq-kex 来消除提示。

附:我的 SSH 默认配置

Host *                                  # 匹配所有主机,作为默认配置

    User root                           # 默认使用 root 用户登录
    IdentityFile ~/.ssh/id_ed25519      # 默认使用该私钥进行公钥认证

    GSSAPIAuthentication no             # 禁用 GSSAPI/Kerberos 认证,加快连接速度

    ServerAliveInterval 60              # 每 60 秒向服务端发送保活包,防止连接被断开

    ControlMaster auto                  # 启用 SSH 连接复用,第一个连接作为主连接
    ControlPath /tmp/ssh-%r@%h:%p       # 复用连接的 Unix Socket 文件路径
    ControlPersist 24h                  # 主连接关闭后继续保留 24 小时供后续复用

    HostkeyAlgorithms +ssh-rsa          # 允许使用旧版 ssh-rsa 主机密钥算法
    PubkeyAcceptedAlgorithms +ssh-rsa   # 允许使用 ssh-rsa 用户公钥认证

    WarnWeakCrypto no-pq-kex            # 不提示“未使用抗量子密钥交换算法”警告
如果你有魔法,你可以看到一个评论框~