期限切れのパスワードとSSHキーに基づくログインにUsePAMを使用する

期限切れのパスワードとSSHキーに基づくログインにUsePAMを使用する

SLES 11マシンがあります。ユーザーはSSHとpubkeyを介してログインします(混合、一部のユーザーはパスワードを使用し、一部はSSHキーを使用します)

sshd_configには次のものがあります。

UsePAM yes
PasswordAuthentication yes
PubkeyAuthentication yes

問題:pubkeyを使用してログインしたユーザーのパスワードが期限切れになると、ユーザーにパスワードを変更するように求められます。

質問:有効なSSHキーがあり、パスワードが期限切れになった場合、ユーザーがログインできるようにPAMまたはsshd設定をどのように設定しますか? -いいえ「パスワード変更」ポップアップが表示されます。

アップデート#1: 解決策は次のとおりです: "UsePAM no"

SERVER:~ # cat /etc/pam.d/sshd 
#%PAM-1.0
auth        requisite   pam_nologin.so
auth        include     common-auth
account     requisite   pam_nologin.so
account     include     common-account
password    include     common-password
session     required    pam_loginuid.so
session     include     common-session
SERVER:~ # 

アップデート#2:解決策は次のとおりです。ユーザーパスワードが期限切れにならないように設定

アップデート#3:

SERVER:/etc/pam.d # cat common-account
#%PAM-1.0
...
account required    pam_unix2.so    
account required    pam_tally.so
SERVER:/etc/pam.d # 

ベストアンサー1

パスワードの有効期限プロンプトを生成する作業の順序は次のとおりです。

  • accountSSHは、アカウントが存在し有効であることを確認するPAMステップを実行します。このaccount段階では、パスワードが期限切れになったことを通知し、SSHに通知します。
  • SSH はキーベース認証を実行します。これにはPAMは必要ないため、その手順は実行されませんauth。次に、SSHログインセッションを確立し、PAMsessionステップを実行します。
  • 次に、SSH は、PAM がパスワードの有効期限が切れたことを通知し、警告メッセージを印刷し、PAM にユーザーがパスワードを変更できるように要求します。その後、SSH 接続が切断されます。

これはすべてSSHを介して実行され、この動作を構成するSSHオプションは表示されません。したがって、SSHおよび/またはPAMのカスタムバージョンを構築する必要がない限り、私が見ることができる唯一のオプションは、PAMが期限切れのパスワードをSSHに報告しないようにすることです。これにより、SSHによる有効期限切れのパスワード検証を完全に無効にします。、ユーザーがパスワードを使用してSSH経由でログインしている場合も同様です。その他(SSHではない)ログイン方法は、引き続きパスワードの有効期限を確認します。

現在pam.d/sshdファイルにエントリがありますaccount include common-accountcommon-accountこのペアを含むファイルがあるようですpam_unix.so。これは期限切れのパスワードを確認するための行です。

common-accountファイル自体は他のログイン方法に使用されるため、触れたくありません。代わりincludeにファイルから削除しようとしていますpam.d/sshdcommon-accountこの他に他の機能があれば に直接pam_unix.so入れることもできますpam.d/sshd

最後に、これはシステムセキュリティに対する修正であり、私は良いアドバイスを提供すると盲目的に信頼してはいけません。 PAMの仕組みについてよくわからない場合は、お読みください。いくつかの開始位置はman 7 PAMman 5 pam.confとすることができますman 8 pam_unix

おすすめ記事