OpenSSH强加密算法配置及弱密钥交换协议禁用

冬瑶君_3732

冬瑶君_3732

2026-03-22

379人浏览

原创

应执行sshd -t | grep kexalgorithms查看当前生效的kex算法列表,若含diffie-hellman-group1-sha1或diffie-hellman-group14-sha1即存在弱算法;正确禁用方式是显式配置kexalgorithms curve25519-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256并重载服务。

openssh强加密算法配置及弱密钥交换协议禁用

如何确认当前 OpenSSH 是否启用了弱密钥交换算法

直接看运行中的 sshd 实际启用的 KEX(密钥交换)列表,比翻配置文件更可靠。很多用户改了 /etc/ssh/sshd_config 却没重载服务,或者被系统默认策略覆盖,导致“以为禁了,其实还在用”。

  • 在服务器上执行:sshd -T | grep kexalgorithms —— 输出的是当前生效的完整 KEX 列表
  • 若没显式配置 KexAlgorithms,OpenSSH 8.0+ 默认包含 diffie-hellman-group14-sha256 等尚可接受的算法,但**仍保留 diffie-hellman-group1-sha1 和 diffie-hellman-group14-sha1(已不安全)**
  • 客户端连接时加 -vvv 参数(如 ssh -vvv user@host),在日志里搜 debug1: kex: algorithm: 行,能看清本次实际协商用的算法

禁用弱 KEX 的正确写法(OpenSSH 7.3+)

不是简单删掉旧算法就行,得显式指定一整套现代、强校验的组合,否则 OpenSSH 可能 fallback 到兼容模式或忽略配置。

  • 编辑 /etc/ssh/sshd_config,添加或替换这一行:KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
  • 必须排除所有带 sha1 后缀的算法(如 diffie-hellman-group14-sha1),它们已被 NIST 和 CISA 明确标记为不安全
  • 不要包含 diffie-hellman-group16-sha512 或 group18 —— 多数老客户端(如旧版 PuTTY、某些嵌入式 SSH 客户端)根本不认识,会导致连接失败
  • 改完必须执行:sudo systemctl reload sshd(不是 restart),避免断开现有连接

为什么 curve25519-sha256 是首选,但不能只留它一个

它速度快、抗侧信道、实现简洁,是目前最推荐的 KEX 算法。但单靠它会牺牲兼容性——不是所有客户端都支持。

  • OpenSSH 6.5+ 支持 curve25519-sha256;PuTTY 0.70+ 才支持;旧版 SecureCRT、某些 Java SSH 库(如 JSch 0.1.55 之前)完全不识别
  • 所以推荐组合中保留 ecdh-sha2-nistp256 和 diffie-hellman-group-exchange-sha256 作为 fallback:前者广泛支持,后者允许服务端动态提供强 DH 参数
  • 别用 diffie-hellman-group14-sha256 单独撑场面——它依赖固定 2048-bit 参数,而 NIST 已建议迁移到 3072-bit 起,group-exchange-sha256 才能真正启用更强参数

检查是否真生效:连不上时先排查这三处

禁用弱算法后最常见的故障不是加密失败,而是协商中断——客户端根本找不到共同算法,直接断连。

  • 查服务端日志:sudo journalctl -u sshd -n 50 --no-pager | grep "no matching kex",出现这句说明客户端提的 KEX 全被拒了
  • 客户端如果是 OpenSSH,临时加 -o KexAlgorithms=+ 强制启用某个算法测试(例如 ssh -o KexAlgorithms=+diffie-hellman-group14-sha1 user@host),确认是否真因 KEX 不匹配
  • 注意 Windows 上的 OpenSSH 客户端(Win10 1809+ 自带)默认 KEX 列表比 Linux 旧,可能不含 curve25519-sha256,需升级或手动指定

真正麻烦的不是配错一行,而是不同环境 SSH 版本碎片化太严重——同一份配置,在 CentOS 7、Ubuntu 22.04、macOS 14 和某台老网络设备上表现可能完全不同。每次上线前,务必用目标环境中真实客户端连一次,抓 -vvv 日志看协商结果。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

4045

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

375

21

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

20

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

0

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

0

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

0

12

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

2026.09.22

20

13

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

2026.09.22

0

19

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

2026.09.22

0

19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.2万人学习