温馨提示×

CentOS SSH密码错误如何解决

小樊
80
2026-08-03 02:55:27
栏目: 智能运维

当 CentOS 出现 SSH 密码错误 时,通常可以从以下几个方面排查和解决。下面按最常见 → 较少见的顺序说明。


一、确认账号和密码是否正确

  1. 确认用户名

    whoami
    

    或确认是否使用了正确的用户名(如 root 或普通用户)。

  2. 确认密码

    • Linux 输入密码时 不会显示任何字符
    • 注意:
      • 键盘布局(是否误切到中文输入法)
      • 大小写
      • 数字小键盘是否开启
  3. 本地登录测试

    su - 用户名
    

    或直接在本机终端登录,排除 SSH 问题。


二、确认 SSH 服务是否允许该用户登录

1️⃣ 检查 SSH 配置

vim /etc/ssh/sshd_config

重点检查以下项:

PermitRootLogin yes
PasswordAuthentication yes

如果是 no,需要改为 yes,然后重启 SSH:

systemctl restart sshd

三、账号被锁定或密码过期

1️⃣ 检查账号状态

passwd -S 用户名
  • L:账号被锁定
  • P:密码可用
  • NP:无密码

2️⃣ 解锁账号

passwd -u 用户名

3️⃣ 检查是否过期

chage -l 用户名

若已过期,可重置密码:

passwd 用户名

四、SELinux 或 PAM 限制(较少见但常见)

1️⃣ 临时关闭 SELinux 测试

getenforce
setenforce 0

如果关闭后可以登录,说明是 SELinux 问题。

✅ 永久关闭(不推荐生产环境):

vim /etc/selinux/config
SELINUX=disabled

五、SSH 密钥冲突(误以为密码错误)

如果你之前配置过 SSH Key,可能:

  • 客户端仍尝试用 key 登录
  • 密码登录被忽略

解决方法

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no user@ip

六、防火墙或端口问题(不是密码错误,但容易误判)

ss -lntp | grep ssh

确认 SSH 端口是否是 22 或自定义端口。


七、查看 SSH 登录日志(最重要)

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 中的日志贴出来,我可以帮你精确定位问题。

0