PAMを使用したデフォルトのSSSD設定があります。 LDAPユーザーとして問題なくログインできます。ただし、サーバー上にローカルユーザーを作成すると、次のようになります。
adduser test1
passwd test1
次に、そのユーザーとしてログインしようとすると、次のエラーが発生します。
pam_sss(sshd:account): Access denied for user test1: 10 (User not known to the underlying authentication module)
私の/etc/nsswitch.conf
はこれです:
passwd: files sss
shadow: files sss
group: files sss
#hosts: db files nisplus nis dns
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files sss
netgroup: files sss
publickey: nisplus
automount: files ldap
aliases: files nisplus
sudoers: files sss
現在、files
はnsswitch.conf
に代替としてリストされていますが、認証するファイルを調べていないようです。
SSSDが認証モジュールである場合、ローカルユーザーとしてのログインを許可するにはどうすればよいですか?
認証、パスワード変更、アクセス制御のトラブルシューティング認証を成功させるには、最初にユーザー情報を正確に提供する必要があります。認証をデバッグする前に、ユーザー情報がgetent passwd $user
またはid $user
で解決できることを確認してください。ユーザー情報の取得に失敗すると、安全なログまたはジャーナルに次のようなメッセージが表示されます。
pam_sss(sshd:account): Access denied for user admin: 10 (User not known to the underlying authentication module)
このエラーが発生したとき、問題は、セカンダリ認証(私の場合はyubikey)が/etc/pam.d/common-authのunix authの前にリストされているはずでしたが、最後に配置していたことでした。あなたの状況には当てはまらないかもしれませんが、チェックする価値があります
奇妙に聞こえます。アカウントで始まる行で、pam構成を確認する必要があります。 pam_sss
だけがあり、pam_unix
はないと思います。
適切なpamファイルを見つけるのは難しいかもしれませんが、使用するディストリビューションによって異なります。
RHELベースのシステムとSSHの場合、それは/etc/pam.d/password-auth
です。
LDAPユーザー(ローカルユーザーではない)の2要素認証にYubiKeyを使用しているという点で、@ DionSteelと同様の問題が発生しました。
CentOS 7を実行しているので、扱っていたファイルは/etc/pam.d/sshd
です。
もともと私は私の認証セクションに次のものを持っていました:
#%PAM-1.0
auth required pam_yubico.so ...
auth required pam_sepermit.so
#auth substack password-auth
auth include postlogin
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
パスワード認証ではなくSSHキー認証を使用しているため、password-auth
はコメント化されています。
ローカルユーザーもマシンにSSHで接続できるように、物事を再構築する必要がありました。
#%PAM-1.0
auth required pam_sepermit.so
auth sufficient pam_yubico.so ...
auth substack password-auth
auth include postlogin
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
まず、YubiKey認証をsufficient
ではなくrequired
にしました。これは、それと以前にリストされたauth
モジュールのいずれかが成功した場合、ユーザーはすぐに認証され、それ以上のauth
モジュールはチェックされないことを意味します。失敗した場合、PAMはそれを無視し、それ以降のauth
ルールに進みます。
このため、他のすべてのrequired
モジュールをYubiKey認証の前に移動する必要がありました。したがって、auth required pam_sepermit.so
を1行目に移動しました。
最後に、password-auth
行のコメントを解除して、YubiKey認証が失敗した場合にローカルユーザーがパスワードで認証できるようにしました(ローカルユーザーの場合はそうなります)。