ssh不支持限制加密算法使用频率,正确做法是通过sshd_config明确禁用弱算法(如cbc、sha1、arcfour)并指定强算法列表,强制连接阶段协商时排除不安全选项,再配合密钥认证、禁用弱主机密钥等措施完成整体加固。

SSH 本身不提供“限制特定加密算法使用频率”的机制——它只协商一次算法用于整个连接生命周期,不存在“高频调用某算法”需要限频的场景。所谓“使用频率”,实际是指控制哪些算法可被协商启用,而非运行时动态限流。因此,正确做法是通过配置明确允许或禁用某些加密算法,从而在连接建立阶段就排除不安全或不兼容的选项。
明确禁用高风险或过时加密算法
OpenSSH 默认启用较新算法(如 aes256-gcm@openssh.com),但旧版服务器可能不支持;反过来,若服务器仍开放 arcfour、blowfish-cbc 或 diffie-hellman-group1-sha1 等已被标记为弱或废弃的算法,则应主动禁用。
- 编辑
/etc/ssh/sshd_config,添加或修改Ciphers和KexAlgorithms行: Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctrKexAlgorithms curve25519-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group16-sha384,diffie-hellman-group18-sha512- 删除所有含
cbc、sha1、1024、arcfour的条目
强制客户端仅使用指定算法集
避免客户端自行降级到弱算法,可在客户端配置中硬性限定可用算法:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 编辑
/etc/ssh/ssh_config或用户级~/.ssh/config - 加入全局或 Host 段配置:
Host *Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.comKexAlgorithms curve25519-sha256- 保存后,该客户端发起的所有 SSH 连接将严格按此列表协商,不匹配则直接失败
验证算法是否生效
连接时加 -vvv 参数可查看实际协商过程:
ssh -vvv user@host- 搜索日志中的
debug2: kex_parse_kexinit:和debug2: mac_setup:行 - 确认输出中出现的算法名与配置完全一致,且无被禁用项
- 也可用
ssh -Q cipher或ssh -Q kex查看本地支持列表
配套加固建议(提升整体算法安全性)
单靠算法列表不够,还需配合其他配置防止绕过:
- 禁用密码登录:
PasswordAuthentication no,强制密钥认证 - 关闭弱密钥类型:
HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256(移除ssh-rsa和ssh-dss) - 启用 FIPS 模式(如需合规):
FIPSMode yes(要求系统已启用 FIPS 内核) - 重启服务:
sudo systemctl restart sshd,并检查状态无报错










