DebianベースのシステムでOpenSSHを設定しようとしています。いつも一つ必要ユビカイタワーそして誰でもㅏ公開鍵またはパスワード。
私は他の組み合わせを得ることができることを知っていますが、AuthenticationMethods
この方法を使用するとこの組み合わせは不可能です。
もし password
はいPAMとは別に、sshd_config
次のようになります。
UsePAM yes
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive password,keyboard-interactive
/etc/pam.d/sshd
SSHDがこれを使用するには、Yubico PAMを含める必要があります。
auth required pam_yubico.so id=foo key=bar
上記の例では、パスワードの確認のために目的の組み合わせを取得できません。そしてpam.d/sshd
yubico-authは、同じインタフェース(または)を使用してpassword
同じファイル()で定義された同じメカニズム(PAM)を使用して実行されます。keyboard-interactive
唯一の違いは、後者がチャレンジレスポンスを介して複数のユーザー入力を処理できることです。
たとえば、publickey,keyboard-interactive
結果はpublickey + yubikey +パスワード、結果はyubikey +パスワード+ yubikey +パスワードですが、単一のpassword,keyboard-interactive
入力制限のためにこれを満たすことはできません。password
無効にcommon-auth
すると、pam.d/sshd
最初の組み合わせは満たされますが、2番目の組み合わせは不可能になります。
問題の鍵は、OpenSSHがAuthenticationMethods
PAM要件を互いに分離できず、PAMがSSH公開鍵認証(「公開鍵またはパスワード」条件をPAMで定義し、sshdでのみ使用可能keyboard-interactive
)を理解できないことです。
OpenSSHとpam_yubico.soを使用してこれを達成する別の方法はありますか?
または、内部的にパターンを区別できる場合は、password
それぞれを除外するために使用できます。keyboard-interactive
pam.d/sshd
pam_succeed_if.so
pam_yubico.so
common-auth