在我正在初始化的 VM 上,我能够通过具有公钥身份验证的 SSH 以一个非 root 用户 ( admin
) 而不是另一个 ( ) 身份登录。tbbscraper
我可以在任何日志文件中找到的唯一错误消息是
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' 允许成功登录:debug1: Authentication succeeded (publickey).
出现而不是“连接关闭”消息。
这似乎不是权限问题...
# 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
。指出不同:没错,
tbbscraper
行的感叹号后面有两个冒号。这将所有字段都推到一个之上,使 PAM 认为该帐户于 1970 年 1 月 8 日到期。感谢您发布您的问题。我遇到了同样的错误,但我的问题与影子文件无关。我找到了我的解决方法,并想为其他在谷歌上搜索此错误的人发布答案。这个服务器故障问题首先出现。
尝试检查
/etc/security/access.conf
!我们使用 Active Directory 进行身份验证,但我需要以本地非 AD 用户 (jenkins) 身份登录。我的老板最初在以下行中设置了盒子
/etc/security/access.conf
:我将其更改为以下内容,现在可以登录;我什至不需要重新启动任何服务。
有同样的错误信息。关闭 sshd 并在调试模式下重新启动它
这说明了原因:
支票账户:
这表明帐户被锁定(标志“L”)通过设置新密码解锁帐户:
完毕。
在我的情况下,我正在重命名本地 CentOS 6 用户,并忘记在 /etc/shadow 中重命名它们(他们是无密码密钥认证的,没有在我的脑海中弹出),所以新用户名的记录只是/etc/shadow 中不存在。在 /var/log/secure 它给了我 unix_chkpwd 错误和 PAM 拒绝访问:
今天早上我遇到了同样的问题,但是服务器根据 Active Directory 对用户进行身份验证。原来用户的域密码已过期。
我遇到了同样的问题,建议的选项都不起作用。但是我在一个论坛(https://ubuntuforums.org/showthread.php?t=1960510)中发现了一个完美的“解决方法”。
编辑
/etc/ssh/sshd_config
和设置虽然它可能不是真正的解决方案,因为我的机器肯定有问题(昨天它工作正常!),这个至少可以工作。
在我的情况下,在“有趣”的条件下 ext4 rootfs 损坏后,它是垃圾命中 ''/etc/tcb/USER/shadow'';它看起来非常有文字,所以在初始检查时没有发现(现在无法重新安装节点,但必须重新安装)。