私は99%の時間を公開鍵認証を使用して、私のコンピュータのいずれかでプライベートサーバーを管理します。ただし、別のコンピュータからアクセスする必要がある場合に備えて、パスワード認証を有効にしました(rootではなく自分の場合)。
システムセキュリティを強化するために2FAを有効にしたいのですが、パスワードログイン専用です。プロンプトなしでログインするために公開鍵認証を使用する便利さに本当に感謝し、毎回2FAを使用する必要があるよりも2FAを使用しない方が良いです。 (私は機密プロジェクトに参加しており、通常の勤務日には12以上の2FA認証を受けています。))
2FA設定について私が見つけたすべてのガイドは、すべての認証方法で2FAを有効にすると仮定します。
それでは、2FAをパスワード認証にのみ有効にし、公開鍵には有効にできませんか?
それでも問題が解決しない場合は、一般ユーザーのパスワード認証を無効にし、2FAを有効にしたメンテナンスユーザーを設定することが回避策です。しかし、私はよりきれいな設定を好む。
答え1
これは推測なので、確かに少し調整が必要ですが、説明する動作は確かに可能です。
以下を使用してPAM認証設定を設定できます。
auth sufficient pam_ssh_user_auth.so
auth required password-auth
auth required pam_2fa.so
構成ファイルは順次読み込まれます。最初の行には、「Ssh認証が有効な場合は終了に成功しました」と表示されます。 SSH 公開鍵認証が有効であると仮定すると、認証は正常に終了します。次の 2 行は、公開鍵をまだ使用していない場合にのみ実行されます。適切なパスワード認証と2FA認証を含めるだけです。