明确禁用SSHv1并限制加密算法可提升安全性:配置Protocol 2,设置安全的KexAlgorithms、Ciphers和Macs,关闭密码认证与root登录,重启sshd服务并验证配置有效性。

SSH 是系统管理中最常用的远程访问工具,但默认配置可能包含不安全的算法和协议版本。通过合理配置 /etc/ssh/sshd_config,可以显著提升 SSH 服务的安全性,防止中间人攻击、暴力破解和已知漏洞利用。
禁用不安全的 SSH 协议版本
SSH 协议有两个主要版本:SSHv1 和 SSHv2。SSHv1 存在严重安全缺陷(如易受中间人攻击),必须禁用。
确保配置中明确只使用 SSHv2:- Protocol 2 —— 显式启用协议版本 2 并禁用 v1
禁用弱加密算法和密钥交换方法
OpenSSH 支持多种加密、密钥交换(KEX)和消息认证码(MAC)算法。部分老旧算法(如 CBC 模式加密、MD5 哈希)已被证明不安全,应主动移除。
推荐在 sshd_config 中显式禁用以下内容:-
KexAlgorithms —— 限制密钥交换算法,例如:
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256 -
Ciphers —— 禁用 CBC 模式,使用更安全的 CTR 或 GCM 模式:
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr -
Macs —— 禁用基于 MD5 和 SHA1 的 MAC:
Macs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com
-etm@openssh.com 后缀的 MAC 算法可提供“加密然后 MAC”保护,增强抗攻击能力。
禁用不安全的身份验证方式
减少攻击面,关闭不必要的登录选项。
- PubkeyAuthentication yes —— 推荐使用公钥认证
- PasswordAuthentication no —— 若使用密钥登录,应禁用密码认证
- PermitEmptyPasswords no —— 防止空密码登录
- ChallengeResponseAuthentication no —— 禁用交互式响应认证
- PermitRootLogin no —— 禁止 root 直接登录(建议用普通用户 + sudo)
应用配置并验证更改
修改完成后,必须重启 SSH 服务并测试连接,避免被锁在服务器外。
- 保存配置后运行:
sudo systemctl restart sshd - 使用另一终端测试连接,确认新配置有效
- 可用命令检查当前支持的算法:
ssh -Q kex、ssh -Q cipher、ssh -Q mac - 使用扫描工具检测弱点,如:
nmap --script ssh2-enum-algos target_ip
基本上就这些。定期更新 OpenSSH 版本,并关注官方安全公告,能进一步保障服务安全。配置虽小,却能有效抵御自动化扫描和常见攻击。










