Linux怎么配置SSH只使用Ed25519或RSA4096安全算法证书

梦晨小哥_2051

梦晨小哥_2051

2026-11-02

579人浏览

原创

必须显式配置sshd_config的KexAlgorithms、Ciphers、Macs和HostKeyAlgorithms四参数,仅保留curve25519-sha26、aes256-gcm@openssh.com等强算法及ssh-ed25519/rsa-sha2-512,同步生成对应ed25519或RSA-4096 HostKey文件,并用sshd -t验证后reload。

linux怎么配置ssh只使用ed25519或rsa4096安全算法证书

只允许 Ed25519 或 RSA-4096,必须改 sshd_config 的 KexAlgorithms、Ciphers、Macs 和 HostKeyAlgorithms

OpenSSH 默认会启用一堆算法(包括老旧不安全的),但“只用 Ed25519 或 RSA-4096”不是指密钥类型,而是指整个 SSH 协议握手阶段的算法组合。光生成 id_ed25519 不够,服务端必须明确拒绝弱算法,否则客户端仍可能降级协商出 ssh-rsa(已被 OpenSSH 8.8+ 默认禁用签名)或 diffie-hellman-group1-sha1 等已弃用项。

关键配置项要一起收紧:

  • KexAlgorithms:只保留现代密钥交换,例如 curve25519-sha256,ecdh-sha2-nistp521(禁用所有 dh 和 group1/14)
  • Ciphers:禁用 cbc 模式和 arcfour,只留 aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
  • Macs:只留 hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
  • HostKeyAlgorithms:这是重点——控制服务器用哪种密钥做主机认证,必须显式列出 ssh-ed25519,rsa-sha2-512,rsa-sha2-256,并**去掉 ssh-rsa**(OpenSSH 8.8+ 已默认不接受该签名)

改完后务必运行 sudo sshd -t 检查语法,再 sudo systemctl reload sshd(不要直接 restart,避免连接中断)。

服务器端 HostKey 必须包含 Ed25519 或 RSA-4096 密钥文件

即使 HostKeyAlgorithms 列了 ssh-ed25519,如果 /etc/ssh/ssh_host_ed25519_key 文件不存在,sshd 启动时会静默跳过,回退到其他可用 HostKey(比如残留的 ssh_host_rsa_key,若它只有 2048 位就违规)。

确认并生成合规 HostKey:

  • 检查现有密钥:sudo ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key 2>/dev/null || echo "missing ed25519"
  • 生成 Ed25519 HostKey:sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
  • 生成 RSA-4096 HostKey(仅当必须兼容旧客户端):sudo ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key -N ""
  • 删掉不合规的旧密钥(如 ssh_host_rsa_key 是 2048 位):sudo rm /etc/ssh/ssh_host_rsa_key*

注意:-N "" 表示无密码,因为 HostKey 是系统自动加载的,不能设口令。

客户端连接时被拒?大概率是算法协商失败,不是密钥问题

常见错误信息如:no matching host key type found. Their offer: ssh-rsa 或 no matching key exchange method found,说明客户端和服务端在 HostKeyAlgorithms 或 KexAlgorithms 上完全对不上。

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载

临时调试方法(不推荐长期使用):

  • 客户端强制指定算法测试:ssh -o HostKeyAlgorithms=ssh-ed25519 user@host
  • 查看服务端实际支持的算法:ssh -vvv user@host 2>&1 | grep "server offers"(找 kex、hostkey 相关行)
  • 别用老版本 OpenSSH 客户端(如 CentOS 7 自带的 7.4p1),它根本不认识 ssh-ed25519;升级到 OpenSSH 7.8+ 更稳妥

真实环境中,客户端通常不需要额外配置——只要服务端算法列表干净、HostKey 存在且权限正确(/etc/ssh/ssh_host_*.key 必须是 root:root 且权限 600),新客户端就能自动协商成功。

为什么不能只改 PubkeyAuthentication 就算“只用 Ed25519”?

PubkeyAuthentication yes 只控制用户认证是否允许公钥登录,跟服务端用什么算法做主机认证、密钥交换、加密完全无关。它不干预 ssh-rsa 主机密钥继续被使用,也不阻止客户端用弱 cipher 连接。

真正实现“只用 Ed25519 或 RSA-4096”的硬约束,在于四组算法参数的显式声明 + 对应 HostKey 文件的存在与权限。漏掉任意一环,都可能让漏洞或降级攻击有机可乘。

最容易被忽略的是:改完 sshd_config 后没生成对应 HostKey 文件,或者忘了 sshd -t 验证就 reload,结果服务静默降级到备用算法——而你根本不会收到任何告警。

相关文章

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

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

下载

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

相关专题

更多
页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

2023.08.14

6576

4

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4350

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3673

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2933

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

7230

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6862

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3933

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3425

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3659

6

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习