linux禁用ssh弱加密算法的核心是显式声明强算法白名单,而非简单禁用:需在sshd_config中顶格配置ciphers、macs、kexalgorithms三类强算法,同步设置protocol 2、停用rsa主机密钥、passwordauthentication no及permitrootlogin no,并经sshd -t校验后systemctl reload sshd生效。

Linux 上禁用 SSH 弱加密算法,核心不是“禁止使用”,而是显式声明只允许强算法——OpenSSH 会严格按你写的列表协商,未列出的全部被屏蔽。这比删配置、加黑名单更可靠,也符合 NIST SP 800-131A 和 OpenSSH 官方推荐逻辑。
查清本机实际支持的算法
别直接抄网上的配置,先确认你的 OpenSSH 版本(sshd -V)是否真支持那些算法,否则改完可能连不上:
- 查看可用密钥交换算法:
ssh -Q kex | grep -E "(group1|group14|sha1)"—— 出现的都要禁用 - 查看可用加密算法:
ssh -Q cipher | grep -E "(cbc|arcfour|3des|blowfish|cast128)"—— 这些全属淘汰项 - 查看可用 MAC 算法:
ssh -Q mac | grep -E "(md5|sha1)"—— 只保留带etm@openssh.com后缀的(如hmac-sha2-256-etm@openssh.com)
在 sshd_config 中顶格写入三类强算法白名单
用 root 编辑 /etc/ssh/sshd_config,在文件末尾顶格添加(不能缩进、不能空格、逗号后不加空格)以下三行:
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctrMacs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.comKexAlgorithms curve25519-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256
注意:如果文件里已有 Ciphers、Macs 或 KexAlgorithms 行,必须删除旧的,只保留这一组新配置。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
同步关闭配套薄弱入口
单改算法不够,攻击者可能绕过:
- 强制协议版本:
Protocol 2(删掉或注释所有含Protocol 1的行) - 停用弱主机密钥:注释或删除所有
HostKey /etc/ssh/ssh_host_rsa_key行,只保留ssh_host_ed25519_key和ssh_host_ecdsa_key;若无 ed25519 密钥,运行ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""生成 - 禁用密码登录:
PasswordAuthentication no(前提是已配好密钥登录) - 禁止 root 直连:
PermitRootLogin no
验证并安全生效
改完别急着重启,分步验证:
- 语法检查:
sudo sshd -t—— 无任何输出表示配置合法 - 重载服务:
sudo systemctl reload sshd(不中断现有连接,比 restart 更稳妥) - 本地测试:
ssh -vv user@localhost,搜索日志中kex:、cipher:、mac:行,确认出现的全是上面配置的算法,且没有cbc、sha1、group1等字样
不复杂但容易忽略。










