在 CentOS 中禁用 SSH 空密码(即禁止无密码登录),可以通过修改 SSH 服务端配置 来实现。步骤如下:
编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
找到或添加以下两个关键配置项:
PermitEmptyPasswords no
PasswordAuthentication yes
⚠️ 如果你禁用了密码登录并仅使用密钥认证,依然建议确保
PermitEmptyPasswords no
sshd -T | grep permitemptypasswords
输出应为:
permitemptypasswords no
sudo systemctl restart sshd
sudo service sshd restart
检查系统中是否存在空密码用户:
sudo awk -F: '($2 == "") {print $1}' /etc/shadow
如果有输出,说明该用户密码为空,应立即处理。
sudo passwd -l 用户名
或设置密码:
sudo passwd 用户名
✅ 禁用 root 远程登录:
PermitRootLogin no
✅ 强制使用 SSH 密钥:
PasswordAuthentication no
✅ 限制登录用户:
AllowUsers user1 user2
✅ 核心配置
PermitEmptyPasswords no
✅ 操作顺序
/etc/ssh/sshd_configsshd如果你是在 云服务器 / 等保 / 安全加固 / 基线检查 场景下操作,我也可以帮你提供 一键加固脚本 或 等保合规说明。