特定のユーザーに公開鍵でのログインを強制し、他のユーザーにパスワードでのログインを許可することは可能ですか?公開鍵認証(パスフレーズを使用)はパスワードのみの認証よりも強力であるため、公開鍵を使用してログインするにはsudoerに要求します。ただし、通常のユーザーに強制することはあまり便利ではありません。ではsshd_config
、ポリシー関連の設定は表示されません。
特定のユーザーに公開鍵でのログインを強制し、他のユーザーにパスワードでのログインを許可することは可能ですか?公開鍵認証(パスフレーズを使用)はパスワードのみの認証よりも強力であるため、公開鍵を使用してログインするにはsudoerに要求します。ただし、通常のユーザーに強制することはあまり便利ではありません。ではsshd_config
、ポリシー関連の設定は表示されません。
回答:
いくつかのオプションがあります。この回答では、sudoers
グループが定義されていると想定します。
見てくださいsshd_config
manページを、と探しMatch
ディレクティブ。これにより、ssh接続のサブセットにのみ適用される構成ブロックを指定できます。あなたはこのようなことをすることができます:
Match Group sudoers
PasswordAuthentication no
ChallengeResponseAuthentication no
理論的には、sudoers
グループ内のユーザーによる認証の試行に失敗するだけのPAM構成でも、同様のことを実行できます。これにはおそらくpam_succeed_ifモジュールが関係します... auth
sshdの設定に次のようなものを追加できます:
auth requisite pam_succeed_if.so user notingroup sudoers quiet
つまり、sudoers
PAMを介して認証できるのは、グループに参加していない人だけです。これはテストされていないことに注意してください。pam_listfileモジュールを使用して同様のことを行うこともでき
ます。
@larsksとして、答えは私のバージョンでは動作しませんでしたもう一つの可能な答えは、ssh_d
私のバージョンでは、ドキュメントを使用しているように見えるようが見つかりました。ここに:述べています
Matchキーワードに続く行では、キーワードのサブセットのみを使用できます。利用可能なキーワードはです。。。
そのキーワードのリストには、以下は含まれませんChallengeResponseAuthentication
。
私が見つけた本当に楽しい方法はAuthenticationMethods
、あなたの場合は次のように機能するものを使用することでした:
Match Group sudoers
AuthenticationMethods 'publickey'
AuthenticationMethods
サーバーにアクセスする前にユーザーが渡す必要のある一連のメソッドを表すコンマ区切り値のリストを受け取ります。
AuthenticationMethods 'publickey,password'
ユーザーに公開鍵とパスワードを渡して強制することになります。
もっと読むためにman sshd_config
。