在我正在初始化的虚拟机上,我可以使用公共密钥身份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