当 CentOS 出现 SSH 密码错误 时,通常可以从以下几个方面排查和解决。下面按最常见 → 较少见的顺序说明。
确认用户名
whoami
或确认是否使用了正确的用户名(如 root 或普通用户)。
确认密码
本地登录测试
su - 用户名
或直接在本机终端登录,排除 SSH 问题。
vim /etc/ssh/sshd_config
重点检查以下项:
PermitRootLogin yes
PasswordAuthentication yes
如果是 no,需要改为 yes,然后重启 SSH:
systemctl restart sshd
passwd -S 用户名
L:账号被锁定P:密码可用NP:无密码passwd -u 用户名
chage -l 用户名
若已过期,可重置密码:
passwd 用户名
getenforce
setenforce 0
如果关闭后可以登录,说明是 SELinux 问题。
✅ 永久关闭(不推荐生产环境):
vim /etc/selinux/config
SELINUX=disabled
如果你之前配置过 SSH Key,可能:
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no user@ip
ss -lntp | grep ssh
确认 SSH 端口是否是 22 或自定义端口。
journalctl -u sshd -f
或:
tail -f /var/log/secure
常见错误示例:
| 日志信息 | 原因 |
|---|---|
Failed password |
密码错误 |
Permission denied |
权限/配置问题 |
User root not allowed |
禁止 root 登录 |
Account locked |
账号被锁 |
✅ 确认用户名和密码
✅ PasswordAuthentication yes
✅ PermitRootLogin yes
✅ 账号未锁定、密码未过期
✅ 查看 /var/log/secure
✅ SELinux 未拦截
如果你愿意,可以把 具体报错信息 或 /var/log/secure 中的日志贴出来,我可以帮你精确定位问题。