在 CentOS 中“禁止 SSH 用 root 登录”通常有两种理解,常见做法是禁止 root 通过 SSH 直接登录,而不是完全禁用 root 账号。下面按最常用、最安全的方式说明。
vi /etc/ssh/sshd_config
找到或添加以下行:
PermitRootLogin no
如果是 CentOS 7/8,也可能是:
#PermitRootLogin yes改为
no
⚠️ 操作前必须确认已有普通用户且能 sudo
useradd admin
passwd admin
usermod -aG wheel admin
# CentOS 6
service sshd restart
# CentOS 7/8
systemctl restart sshd
如果你希望 root 还能用密钥,但不能用密码:
PermitRootLogin prohibit-password
或旧版本:
PermitRootLogin without-password
passwd -l root
或
usermod -s /sbin/nologin root
⚠️ 风险极高,可能导致系统无法恢复,不建议生产环境使用。
另开一个终端测试(不要断开当前连接):
ssh root@服务器IP
应提示:
Permission denied (publickey,password).
Port 2222
PasswordAuthentication no
fail2ban 防爆破如果你告诉我 CentOS 版本(6/7/8) 或 是否用密钥登录,我可以给你更精确的操作步骤。