VMで初期化しています。ルート以外のユーザー(admin
)としてログインできますが、SSHでパブリック(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
_の内容に明らかな問題はありません。何か案は?
VMはEC2インスタンス、OSはDebian 7.1(Amazonの既成のAMI)です。
結局、それは/etc/shadow
の1文字のタイプミスであったことが判明しました。違いを見つける:
admin:!:15891:0:99999:7:::
tbbscraper:!::15966:0:99999:7:::
そうです、tbbscraper
行の感嘆符の後に2つのコロンがあります。これにより、すべてのフィールドが1つ以上になり、1970年1月8日にアカウントが期限切れになったとPAMに思わせます。
質問を投稿していただきありがとうございます。同じエラーが発生しましたが、問題はシャドウファイルに関連していませんでした。私は自分の修正を見つけ、このエラーをグーグルする他の人にも回答を投稿したいと思いました。このサーバー障害の質問が最初に出てきます。
/etc/security/access.conf
を確認してください!
認証にはActive Directoryを使用していますが、ローカルのAD以外のユーザー(jenkins)としてログインする必要がありました。私の上司は最初に/etc/security/access.conf
の次の行でボックスをセットアップしました:
+:root:ALL
-:ALL:ALL
私は次のように変更し、ログインが機能するようになりました。サービスを再起動する必要すらありませんでした。
+:jenkins:ALL
+:root:ALL
-:ALL:ALL
同じエラーメッセージがありました。 sshdをシャットダウンし、デバッグモードで再起動しました
/usr/sbin/sshd -ddd
これは理由を示しました:
debug3: User autossh not allowed because account is locked
...
input_userauth_request: invalid user <username> [preauth]
確認済みのアカウント:
passwd -S <username>
これは、アカウントがロックされていることを示しています(フラグ "L")。新しいパスワードを設定して、アカウントのロックを解除しました。
passwd <username>
できました。
今朝も同じ問題が発生しましたが、サーバーはActive Directoryに対してユーザーを認証します。ユーザーのドメインパスワードの有効期限が切れていることがわかります。
私の場合、私はローカルのCentOS 6ユーザーの名前を変更していて、/ etc/shadowでそれらの名前を変更するのを忘れていました(パスワードなしのキー認証されており、頭に浮かびませんでした)ので、新しいユーザー名のレコードは/ 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
私は同じ問題を抱えており、提案されたオプションはどれも機能しませんでした。しかし、私はフォーラムの1つ( https://ubuntuforums.org/showthread.php?t=196051 )で、完全に機能する「回避策」を見つけました。
編集/etc/ssh/sshd_config
と設定
UsePAM no
それはおそらく本当の解決策ではありませんが、私のマシンで何かが間違いなく間違っているため(昨日はうまくいきました!)、これは少なくともうまくいきます。
私の場合、「興味深い」条件でext4 rootfsが破損した後、「/ etc/tcb/USER/shadow」がジャンクヒットしました。それはかなりテキストのように見えたので、最初の検査中に見つけられませんでした(現在ノードを再インストールすることはできませんが、そうする必要があります)。