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 版本¶
要求: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. 创建后量子算法配置文件¶
文件内容:
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. 验证配置语法¶
- 无输出 = 配置正确 ✅
- 有错误提示 = 需要修正配置 ❌
5. 重启 sshd 服务¶
6. 验证服务状态¶
确认显示:
- active (running)
- 绿色的 ● 标记
- 无错误日志
7. 测试连接¶
⚠️ 重要:在新终端测试,保持当前 SSH 会话不断开
验证点: - ✅ 能正常连接 - ✅ 没有后量子警告 - ✅ 连接速度正常
8. 确认算法协商结果(可选)¶
应该看到:
配置文件最终状态¶
/etc/ssh/sshd_config¶
/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 登录¶
通过现有 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
定期检查¶
如果发现有客户端仍在使用旧算法,考虑升级客户端。
参考资料¶
- OpenSSH Post-Quantum Key Exchange
- RFC 9370: NTRU Prime Key Exchange
- OpenSSH 9.0 Release Notes: 引入
sntrup761x25519-sha512@openssh.com
最后验证时间:2026-02-12
服务器环境:Rocky Linux (OpenSSH 9.x)
验证结果:✅ 警告消失,连接正常