次のことをすべて同時に達成できるかどうか疑問に思いました。
sshd_config
のMatch
ブロックを使用して、特権のないユーザーを除いて一般にPasswordAuthentication
を無効にするように設定できました(peon
と呼びましょう)。 。個人ユーザー(Sudo機能を持つ)にログインするには、SSHキーが必要でした。
ただし、2要素認証(pam_google_authenticator
)を有効にしようとすると、ChallengeResponseAuthentication
をオンにする必要があります。これはnotMatch
ブロックで機能しているようです。 、したがって、すべてのユーザーに対してパスワード認証をオンに戻しています。
これを達成する方法はありますか?私はこの種のものがあまり得意ではないので、詳細な説明をいただければ幸いです。
ありがとう!
openssh
の最近のバージョンには、AuthenticationMethods
オプションが含まれています。
Debianは_openssh-6.2
_ しばらく前 をバックポートしたので、これはRaspbianでも利用できると思います。
ユーザーにアクセスを許可するために正常に完了する必要がある認証方法を指定します。
ChallengeResponseAuthentication
を有効にして、_sshd_config
_のメインブロックを作成できます。
_ChallengeResponseAuthentication yes
PasswordAuthentication no
PermitRootLogin no
_
次に、AuthenticationMethods
ブロックでMatch
を使用します(スケーラビリティを緩和するために、Group
マッチングの代わりにUser
マッチングを使用します):
_Match Group personal
AuthenticationMethods publickey
Match Group peon
PasswordAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
_
さらに、 pam_succeed_if(8)
を使用して、一致するグループが必要とする場合にのみ2要素認証をトリガーできます。
_ auth required pam_succeed_if.so quiet user ingroup peon
_