You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenSSH服务器如何配置禁止小于2048位的弱RSA密钥?

如何在OpenSSH服务器禁止弱RSA密钥(小于2048位)

当然有啦!OpenSSH服务器完全支持配置来禁止长度小于2048位的弱RSA密钥,而且不用像你提到的那样用PubkeyAcceptedAlgorithms(应该是PubkeyAcceptedKeyTypes哦,可能手滑打错了)一刀切禁用整个RSA算法类型,咱们可以精准限制密钥长度~

推荐方法:用PubkeyAcceptedKeyTypes配置长度限制(OpenSSH 7.6+)

从OpenSSH 7.6版本开始,官方支持在密钥类型后面追加:min-size=N的后缀,直接指定该类型密钥的最小允许长度。

你只需要在sshd_config配置文件里添加或修改这一行:

PubkeyAcceptedKeyTypes ssh-ed25519,ecdsa-sha2-nistp256,rsa-sha2-256:min-size=2048,rsa-sha2-512:min-size=2048
  • 这里明确列出了允许的密钥类型,同时给RSA的两种安全签名算法(rsa-sha2-256和rsa-sha2-512)加上了最小2048位的限制,小于这个长度的RSA密钥会直接被拒绝。
  • 如果你不得不兼容一些老客户端(依赖过时的ssh-rsa算法,基于SHA-1,安全性较差),也可以加上ssh-rsa:min-size=2048,但真心建议尽量禁用ssh-rsa,毕竟SHA-1已经被证实不安全了。

修改完配置后,记得重启sshd服务让设置生效:

# 用systemd的系统(比如Ubuntu 16.04+、CentOS 7+)
systemctl restart sshd

# 用SysVinit的老系统
service ssh restart

额外:限制服务器自身的RSA主机密钥长度

如果你还想确保服务器自己生成的RSA主机密钥不会是弱密钥,可以在sshd_config里指定HostKey时加上长度参数:

HostKey /etc/ssh/ssh_host_rsa_key -b 2048

不过这个是针对服务器自身密钥的配置,和客户端登录用的密钥限制是分开的,主要用来避免服务器生成小于2048位的主机密钥。

验证配置是否生效

你可以拿一个小于2048位的RSA密钥尝试登录服务器,应该会直接被拒绝,去服务器的日志文件(通常是/var/log/auth.log或/var/log/secure)里查看,能看到类似“key too small”的错误提示,就说明配置生效啦。

内容的提问来源于stack exchange,提问作者nodakai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:11:47