跳转至

SSH 后量子加密警告屏蔽配置

状态: ✅ 已完成

创建日期: 2026-02-12
最后更新: 2026-02-12

问题描述

SSH 连接到服务器时,客户端(OpenSSH 9.x)会显示警告信息:

** 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

问题原因

组件 状态 说明
客户端 OpenSSH 9.0+ 支持后量子密钥交换算法(PQ-KEX)
服务端 OpenSSH < 9.0 或未配置 不支持/未启用后量子算法
警告来源 客户端本地检测 客户端发现服务端不支持 PQ 算法后生成

后量子加密(Post-Quantum Cryptography)背景: - 传统密钥交换算法(如 ECDH)在未来可能被量子计算机破解 - "存储现在,以后解密"攻击:攻击者存储加密流量,等量子计算机成熟后破解 - OpenSSH 9.0+ 引入 sntrup761x25519-sha512@openssh.com 算法抵御此威胁

解决方案

方案选择

方案 适用场景 效果
服务端启用 PQ 算法(推荐) 有服务器管理权限 彻底消除警告,提升安全性 ✅
客户端屏蔽警告 无服务器管理权限 隐藏警告,不解决安全问题 ⚠️

本文档采用:服务端启用后量子算法

操作步骤

1. 检查服务端 OpenSSH 版本

ssh -V

要求:OpenSSH 9.0 或更高版本

如果版本低于 9.0,需要先升级:

# Rocky Linux/RHEL
sudo dnf update openssh-server

# Ubuntu/Debian
sudo apt update && sudo apt upgrade openssh-server

2. 检查现有配置

# 检查主配置文件
sudo grep -n "KexAlgorithms" /etc/ssh/sshd_config

# 检查 included 配置文件
sudo grep -rn "KexAlgorithms" /etc/ssh/sshd_config.d/

# 查看 included 目录内容
ls -la /etc/ssh/sshd_config.d/

3. 创建后量子算法配置文件

sudo vim /etc/ssh/sshd_config.d/50-post-quantum.conf

文件内容

KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512

算法优先级说明

算法 类型 说明
sntrup761x25519-sha512@openssh.com 后量子 最高优先级,OpenSSH 9.0+ 默认算法
curve25519-sha256 传统 ECC 兼容旧客户端
ecdh-sha2-nistp* 传统 ECC 兼容更旧的客户端
diffie-hellman-group* 传统 DH 兼容非常旧的客户端

为什么用 50- 前缀? - /etc/ssh/sshd_config.d/ 中的文件按字母顺序加载 - 50- 确保在大多数默认配置之后加载 - SSH 配置采用"首次定义生效"原则,后加载的文件优先级更高

4. 验证配置语法

sudo sshd -t
  • 无输出 = 配置正确 ✅
  • 有错误提示 = 需要修正配置 ❌

5. 重启 sshd 服务

sudo systemctl restart sshd

6. 验证服务状态

sudo systemctl status sshd

确认显示: - active (running) - 绿色的 标记 - 无错误日志

7. 测试连接

⚠️ 重要:在新终端测试,保持当前 SSH 会话不断开

# 从另一台机器或新终端连接
ssh user@your-server

验证点: - ✅ 能正常连接 - ✅ 没有后量子警告 - ✅ 连接速度正常

8. 确认算法协商结果(可选)

# 客户端查看实际使用的算法
ssh -v user@your-server 2>&1 | grep "kex:"

应该看到:

debug1: kex: server->client cipher: ... kex: sntrup761x25519-sha512@openssh.com ...

配置文件最终状态

/etc/ssh/sshd_config

Include /etc/ssh/sshd_config.d/*.conf

# ... 其他配置保持不变 ...

/etc/ssh/sshd_config.d/50-post-quantum.conf

KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512

故障回滚

如果配置导致 SSH 无法连接:

通过控制台/IPMI 登录

# 删除配置文件
sudo rm /etc/ssh/sshd_config.d/50-post-quantum.conf

# 重启服务
sudo systemctl restart sshd

通过现有 SSH 会话(如果保持连接)

# 查看错误日志
sudo journalctl -u sshd -n 50

# 回滚配置
sudo rm /etc/ssh/sshd_config.d/50-post-quantum.conf
sudo systemctl restart sshd

兼容性说明

客户端版本 兼容性 使用算法
OpenSSH 9.0+ ✅ 完全兼容 sntrup761x25519-sha512@openssh.com (PQ)
OpenSSH 7.x - 8.x ✅ 兼容 curve25519-sha256 (fallback)
OpenSSH 6.x ✅ 兼容 ecdh-sha2-nistp256 (fallback)
OpenSSH < 6.5 ⚠️ 可能不兼容 需要测试或保留 DH 算法

注意:配置中保留了多种传统算法,确保旧客户端也能连接。

安全建议

推荐配置(高安全环境)

如果确认所有客户端都是 OpenSSH 9.0+,可以只保留现代算法:

# /etc/ssh/sshd_config.d/50-post-quantum.conf
KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256

定期检查

# 查看实际使用的算法统计
sudo journalctl -u sshd | grep "kex:" | sort | uniq -c

如果发现有客户端仍在使用旧算法,考虑升级客户端。

参考资料


最后验证时间:2026-02-12
服务器环境:Rocky Linux (OpenSSH 9.x)
验证结果:✅ 警告消失,连接正常