温馨提示×

如何禁用CentOS SSH空密码

小樊
46
2026-08-29 10:37:31
栏目: 智能运维

在 CentOS 中禁用 SSH 空密码(即禁止无密码登录),可以通过修改 SSH 服务端配置 来实现。步骤如下:


一、修改 SSH 配置文件

编辑 SSH 配置文件:

sudo vi /etc/ssh/sshd_config

找到或添加以下两个关键配置项:

1️⃣ 禁止空密码登录(最关键)

PermitEmptyPasswords no

2️⃣ 确保密码认证已开启(可选但常见)

PasswordAuthentication yes

⚠️ 如果你禁用了密码登录并仅使用密钥认证,依然建议确保 PermitEmptyPasswords no


二、检查配置是否生效

查看当前配置

sshd -T | grep permitemptypasswords

输出应为:

permitemptypasswords no

三、重启 SSH 服务

CentOS 7 / 8 / Stream

sudo systemctl restart sshd

CentOS 6(老系统)

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

操作顺序

  1. 修改 /etc/ssh/sshd_config
  2. 重启 sshd
  3. 检查用户是否存在空密码

如果你是在 云服务器 / 等保 / 安全加固 / 基线检查 场景下操作,我也可以帮你提供 一键加固脚本等保合规说明

0