ssh:一个非root用户“PAM帐户configuration拒绝访问”,但不是另一个

在我正在初始化的虚拟机上,我可以使用公共密钥身份validation通过SSH以非root用户( admin )身份login,但不能通过另一个( tbbscraper )login。 我可以在任何日志文件中find唯一的错误消息

 Sep 18 17:21:04 [REDACTED] sshd[18942]: fatal: Access denied for user tbbscraper by PAM account configuration [preauth] 

在客户端,综合征是

 $ ssh -v -i [REDACTED] tbbscraper@[REDACTED] ... debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering public key: [REDACTED] debug1: Authentications that can continue: publickey debug1: Trying private key: [REDACTED] debug1: read PEM private key done: type RSA Connection closed by [REDACTED] 

将“tbbscraper”更改为“admin”允许成功login: debug1: Authentication succeeded (publickey). 出现而不是“连接已closures”消息。

这似乎不是一个权限问题…

 # for x in admin tbbscraper > do ls -adl /home/$x /home/$x/.ssh /home/$x/.ssh/authorized_keys > done drwxr-xr-x 3 admin admin 4096 Sep 18 17:19 /home/admin drwx------ 2 admin admin 4096 Sep 18 16:53 /home/admin/.ssh -rw------- 1 admin admin 398 Sep 18 17:19 /home/admin/.ssh/authorized_keys drwxr-xr-x 3 tbbscraper tbbscraper 4096 Sep 18 17:18 /home/tbbscraper drwx------ 2 tbbscraper tbbscraper 4096 Sep 18 17:18 /home/tbbscraper/.ssh -rw------- 1 tbbscraper tbbscraper 398 Sep 18 17:18 /home/tbbscraper/.ssh/authorized_keys # cmp /home/{admin,tbbscraper}/.ssh/authorized_keys ; echo $? 0 

…也不是PAM级访问控制问题…

 # egrep -v '^(#|$)' /etc/security/*.conf # 

…所以对类似问题的现有答案似乎都不适用。 我得到的唯一证据是:

 root@[REDACTED] # su - admin admin@[REDACTED] $ 

 root@[REDACTED] # su - tbbscraper su: Authentication failure (Ignored) tbbscraper@[REDACTED] $ 

这意味着一些更大规模的PAM问题,但是在/etc/pam.d我找不到任何明显的错误。 有任何想法吗?

虚拟机是一个EC2实例,操作系统是Debian 7.1(亚马逊的现成的AMI)。

    毕竟,它已经成为/etc/shadow单字符错字。 指出不同:

     admin:!:15891:0:99999:7::: tbbscraper:!::15966:0:99999:7::: 

    没错,在tbbscraper行的感叹号后面有两个冒号。 把所有的领域推到一个,使PAM认为这个账户在1970年1月8日到期。

    今天早上我得到了同样的问题,但服务器validation用户对Active Directory。 发现用户的域密码已过期。

    感谢您发布您的问题。 我得到了同样的错误,但是我的问题与shadow文件无关。 我发现我的修复,并希望发布一个答案以及任何其他人谷歌search这个错误。 这个服务器故障问题首先出现。

    尝试检查/etc/security/access.conf

    我们使用Active Directory进行身份validation,但我需要以本地非AD用户身份(jenkins)login。 我的老板最初在/etc/security/access.conf设置了这个行:

     +:root:ALL -:ALL:ALL 

    我将其更改为以下,login现在工作; 我什至不需要重新启动任何服务。

     +:jenkins:ALL +:root:ALL -:ALL:ALL 

    有相同的错误信息。 closuressshd并以debugging模式重新启动它

      /usr/sbin/sshd -ddd 

    这表明了原因:

      debug3: User autossh not allowed because account is locked ... input_userauth_request: invalid user <username> [preauth] 

    支票账户:

      passwd -S <username> 

    这表明账户被locking(标志“L”)通过设置一个新的密码解锁账户:

      passwd <username> 

    完成。

    在我的情况下,我正在重命名当地的CentOS 6用户,忘记将其重命名为/ etc / shadow(没有密码authentication的密码,没有popup),所以新用户名的logging只是缺less在/ etc / shadow中。 在/ var / log / secure中,它给了我unix_chkpwd错误和PAM拒绝访问:

      unix_chkpwd[12345]: could not obtain user info (user2) sshd[12354]: fatal: Access denied for user user2 by PAM account configuration