ssh认证错误分析
日志信息
/var/log/secure
Aug 27 00:01:27 gaga sshd[18197]: User u01 not allowed because account is locked
Aug 27 00:01:27 gaga sshd[18197]: input_userauth_request: invalid user u01 [preauth]
Aug 27 00:01:27 gaga sshd[18197]: Connection reset by 192.168.3.33 port 52153 [preauth]
日志分析
User u01 not allowed because account is locked
- 用户
u01在系统层面(/etc/shadow)被标记为 锁定。 - 典型情况是
passwd -l u01之后,shadow 文件中密码字段前面会有!或!!。 - 这种用户即使配置了
ssh key也无法登录。
- 用户
input_userauth_request: invalid user u01 [preauth]
- sshd 收到认证请求时,发现用户不可用(锁定或不存在),在认证前阶段就拒绝。
Connection reset by 192.168.3.33 port 52153 [preauth]
- 客户端尝试建立连接但因为认证失败被断开。
解决思路
确认用户状态
1
2grep u01 /etc/passwd
grep u01 /etc/shadow- 如果 shadow 中是
!!或!,说明被锁了。
- 如果 shadow 中是
解锁用户(如果是你自己需要的账号)
1
sudo passwd -u u01
或者直接给它重设密码:
1
sudo passwd u01
仅限于做隧道用户,不允许 shell
如果你想用
u01来跑 ssh 隧道,但不让它登录 shell,可以:- 确保它不是锁定状态(解锁账户),
- 再在
/etc/passwd中把它的 shell 改为/sbin/nologin或/bin/false, - 配合
sshd_config的ForceCommand /bin/false。
这样账号是 启用 的,但没法交互式登录,只能跑隧道。