その他のコメント

その他のコメント

/etc/ssh/sshd_configPAMはDebian 10でデフォルトで有効になっています。

UsePAM yes

パスワードやKerberosログインを許可せずにSSHキー認証のみを許可する状況でPAMsshdでこれを有効にすると、どのような利点がありますか?それともUsePAM「いいえ」に設定すると、プロセスが簡素化され、潜在的に安全になりますか?

SSHDでPAMを無効にすると、実際の影響は何ですか?違いがわかりますか?

答え1

マニュアルページ(および他の答え)が主張するのとは対照的にUsePAM yes許可するroot 以外のユーザーとして sshd を実行しますが、root 以外のユーザーとして sshd を実行して実行することもできます。パスワード認証(同じユーザーが実行している場合)setuid/sbin/unix_chkpwdプログラムを介して。

後者はまったく予期しないことです。

user$ /usr/sbin/sshd -f /dev/null -p 9009 -h ~/.ssh/id_rsa
user$ /usr/sbin/sshd -f /dev/null -o UsePAM=yes -p 7007 -h ~/.ssh/id_rsa

user$ ssh -p 7007 localhost
The authenticity of host '[localhost]:7007 ([::1]:7007)' can't be established.
...
Password: <correct password>
Linux deb11 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64
...
user$  <I'm logged in!>
user$ ^D
Connection to localhost closed.


user$ ssh -p 9009 localhost
The authenticity of host '[localhost]:9009 ([::1]:9009)' can't be established.
...
user@localhost's password:
Permission denied, please try again.
user@localhost's password:
Permission denied, please try again.
user@localhost's password:
user@localhost: Permission denied (publickey,password,keyboard-interactive).
user$

答え2

これマンページ解釈はUsePAM認証だけでなくセッション処理も提供します。たくさんありますPAMモジュール自動キーリングのロック解除、ファイルシステムのマウント、個人データの復号化、オプションでログインを許可するなど、さまざまな機能を提供します。

以前はUsePAM「yes」に設定すると、sshdにroot権限が必要でした。ユースケースに応じて、root以外のユーザーとして実行すると、セキュリティや設定に役立ちます。

状況によっては、これが役に立つと想像できます。たとえば、gitはsshをトランスポートプロトコルとして使用します。 Gitサーバーを設定したいかもしれませんが、PAMを介してGitユーザーを管理したくありません。

答え3

そのためにOpenSSHのソースを調べました。

auth-pam.c行378-382で見つけたコメントによると、UsePAMを使用すると間接的にも直接的にも環境が流出する可能性があります(ここにリンク):

         /*
         * XXX this possibly leaks env because it is not documented
         * what pam_putenv() does with it. Does it copy it? Does it
         * take ownweship? We don't know, so it's safest just to leak.
         */

また、同じソースコードで次の興味深いコンテンツを見つけました。

/*
     * Some silly PAM modules (e.g. pam_time) require a TTY to operate.
     * sshd doesn't set the tty until too late in the auth process and
     * may not even set one (for tty-less connections)
     */

また、1351行でPAMを介してパスワード認証が試みられ、このコードではバックタイミング攻撃の軽減が使用されているようです。

if句で定義されているため、このauth-pam.cコードは実行されません。セキュリティ設定が許可されている場合はnoに設定します。

だから私はそれを「いいえ」に設定し、それのために眠ることができないのをやめる方が良いと思います。

その他のコメント

こういう見方もあります。https://askubuntu.com/questions/1259848/

設定が正しく設定されていないと、SSH公開鍵認証が失敗する可能性があります。 https://serverfault.com/questions/475880

また、このセクションの最後にある結論も読んでくださいConfiguring accounts

https://arlimus.github.io/articles/usepam/

関連情報