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]

日志分析

  1. User u01 not allowed because account is locked

    • 用户 u01 在系统层面(/etc/shadow)被标记为 锁定
    • 典型情况是 passwd -l u01 之后,shadow 文件中密码字段前面会有 !!!
    • 这种用户即使配置了 ssh key 也无法登录。
  2. input_userauth_request: invalid user u01 [preauth]

    • sshd 收到认证请求时,发现用户不可用(锁定或不存在),在认证前阶段就拒绝。
  3. Connection reset by 192.168.3.33 port 52153 [preauth]

    • 客户端尝试建立连接但因为认证失败被断开。

解决思路

  1. 确认用户状态

    1
    2
    grep u01 /etc/passwd
    grep u01 /etc/shadow
    • 如果 shadow 中是 !!!,说明被锁了。
  2. 解锁用户(如果是你自己需要的账号)

    1
    sudo passwd -u u01

    或者直接给它重设密码:

    1
    sudo passwd u01
  3. 仅限于做隧道用户,不允许 shell

    • 如果你想用 u01 来跑 ssh 隧道,但不让它登录 shell,可以:

      • 确保它不是锁定状态(解锁账户),
      • 再在 /etc/passwd 中把它的 shell 改为 /sbin/nologin/bin/false
      • 配合 sshd_configForceCommand /bin/false
    • 这样账号是 启用 的,但没法交互式登录,只能跑隧道。