问题描述:图形桌面登录正常、终端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 sumaps:如果这一行被注释掉了(前面有#),直接取消注释并加上你的用户即可。
2、重启SSH服务
sudo systemctl restart sshd3、测试SSH登录
其他常见原因
1.该用户被SSH配置禁止密码登录/禁止登录
查看sshd配置文件/etc/ssh/sshd_config
检查下面这几项
PasswordAuthentication yesChallengeResponseAuthentication yes# 注释掉或删掉拒绝用户配置DenyUsers xxxAllowUsers 有没有限制只允许某些用户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查看有没有禁止该用户远程登录规则。
发表评论 取消回复