问题描述:图形桌面登录正常、终端sudo输密码正常、同账号密码SSH远程登录提示认证失败。

排查方向:查看SSH日志看具体失败原因

tail -n 50 /var/log/secure
# 或
tail -n 50 /var/log/auth.log

日志里会明确提示:shell invalid、user not allowed、selinux denial 等。
通过监听SSH日志,发现有一条错误,如下
User suma from 10.101.81.12 not allowed because not listed in AllowUsers

通过分析,这个问题为:SSH 配置文件 /etc/ssh/sshd_config 里设置了 AllowUsers 白名单,但是 suma 用户不在这个名单里,所以 SSH 直接拒绝了它的登录请求,才会报认证失败。

解决步骤:
1、编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
找到 AllowUsers 这一行,把 suma 用户加进去,比如:
AllowUsers root suma
ps:如果这一行被注释掉了(前面有#),直接取消注释并加上你的用户即可。

2、重启SSH服务
sudo systemctl restart sshd

3、测试SSH登录

其他常见原因
1.该用户被SSH配置禁止密码登录/禁止登录
查看sshd配置文件/etc/ssh/sshd_config
检查下面这几项

PasswordAuthentication yes
ChallengeResponseAuthentication yes
# 注释掉或删掉拒绝用户配置
DenyUsers  xxx
AllowUsers  有没有限制只允许某些用户


2、用户的登录 Shell 被改成了非登录 shell
查看用户 shell
grep 用户名 /etc/passwd
正常应该是 /bin/bash /bin/zsh
如果是 /sbin/nologin /usr/sbin/nologin /bin/false → SSH 直接认证失败
修复:
usermod -s /bin/bash 用户名

3、SELinux 导致 SSH 认证异常
不重启临时关 SELinux
setenforce 0
getenforce
再试 SSH 登录,能登就是 SELinux 权限上下文问题。
永久关闭改配置 /etc/selinux/config 设 SELINUX=disabled

4、/etc/ssh/sshd_config 开启了 UseDNS yes
DNS 解析超时导致认证卡住失败,改成:UseDNS no

5、pam 模块限制、/etc/security/access.conf 禁止 ssh 登录
cat /etc/security/access.conf
查看有没有禁止该用户远程登录规则。




点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
返回
顶部