Ssh

ssh:一個非 root 使用者但不是另一個使用者的“PAM 帳戶配置拒絕訪問”

  • January 24, 2019

在我正在初始化的 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。指出不同:

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

沒錯,tbbscraper行的驚嘆號後面有兩個冒號。這將所有欄位都推到一個之上,使 PAM 認為該帳戶於 1970 年 1 月 8 日到期。

感謝您發布您的問題。我遇到了同樣的錯誤,但我的問題與影子文件無關。我找到了我的解決方法,並想為其他在Google上搜尋此錯誤的人發布答案。這個伺服器故障問題首先出現。

嘗試檢查/etc/security/access.conf

我們使用 Active Directory 進行身份驗證,但我需要以本地非 AD 使用者 (jenkins) 身份登錄。我的老闆最初在以下行中設置了盒子/etc/security/access.conf

+:root:ALL
-:ALL:ALL

我將其更改為以下內容,現在可以登錄;我什至不需要重新啟動任何服務。

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

引用自:https://serverfault.com/questions/540004