VMWare 虚拟机中的 Red Hat Enterprise Linux 6.10。我们定义了多个用户帐户。一个用户帐户 (user3) 无法通过 SSH 或 VMWare 控制台登录。以前曾登录过,但最近两天无法登录。其他用户帐户可以正常登录。
用户的帐户列在 /etc/passwd 和 /etc/shadow 中,并且未被锁定。我们创建了一个新用户,该用户登录没有任何问题。 /etc/passwd 条目显示有效的 shell 路径 (/bin/bash)。
我们删除了 user3 并重新创建了该帐户。它仍然无法登录。使用任何其他名称(usr3、user33 等)的新帐户都可以登录。名为 user3 的帐户无法登录。
如果新帐户获得 user3 拥有的 UID,则它可以登录。如果名为 user3 的新帐户具有不同的 UID,它仍然无法登录。显示名称“user3”在某处被锁定。
以 root 身份运行“passwd user3”会在 /var/log/secure 中提供以下条目:
passwd: pam_unix(passwd:chauthtok): password changed for user3
passwd: gkr-pam: couldn't update the 'login' keyring password: no old password was entered
当我们以 user3 身份 SSH 登录时,/var/log/secure 显示:
sshd[21420]: error: PAM: Authentication failure for user3 from computer1
就是这样。没有其他错误。有趣的是,当我们故意输入不正确的密码时,我们会看到一组不同的错误:
unix_chkpwd[21903]: password check failed for user (user3)
sshs[21745]pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=computer1 user=user3
sshd[21718]: error: PAM: Authentication failure for user3 from computer1
sshd[22121]: error: PAM: Authentication failure for illegal user user3 from computer3
在我看来,PAM 在某处有一个“user3”的损坏条目。我对 PAM 不太了解,无法进一步排除故障。
我需要避免任何擦除/重置整个 PAM 配置的解决方案,因为我不想影响其他用户帐户。如何精确定位“user3”名称?
答案1
我遇到了同样的问题 - 一名用户无法通过 Putty 或本地 ssh 登录,但 pam_tally2 中没有使用有效或无效密码的新条目。
其他症状:
- su - (提示输入密码并返回“su:身份验证失败”)
- /var/log/secure 中的条目显示“sshd[] 错误:PAM:身份验证失败”,没有身份验证/帐户/会话信息
- 使用“sudo passwd”重置密码清楚地重置了密码,指示令牌已成功更改,并且 /etc/shadow 中的时间戳已正确更新,但身份验证问题仍然存在
- 用户帐号未过期
所有其他用户都能够正确登录,因此这不是一般的 PAM 配置问题。
解决方案:
faillock --user <username> (showed 5 valid failures)
faillock --user <username> --reset
faillock --user <username> (now has 0 valid failures)
之后我就可以通过 Putty 登录并成功使用“su - ”
答案2
该pam_tally2
模块会记录尝试访问的次数,如果尝试失败次数过多,则可以拒绝访问。该模块的联机帮助页有更多信息。
该模块的规范如下/etc/pam.d/login
,例如:
auth required pam_tally2.so deny=6
您可以通过以下方式确定用户的错误计数:
pam_tally2 --user=<username>
您可以通过以下方式重置计数:
pam_tally2 --user=<username> --reset