最近、SSHサーバーでgoogle-authenticatorを使用して2要素認証を有効にしました。しかし、私は今問題に直面しています:
SFTPに使用しているサーバー上に別のユーザーグループがありますが、グループ内のユーザーに対して2FAが設定されていないため、そのグループはログインできなくなりました。そのグループのgoogle-authenticatorモジュールを無効にすることは可能ですか?複数のユーザーがこのアカウントを使用するため、グループ内のユーザーに対して有効にすることはオプションではありません。
PS:私はopenssh-server
を使用します
pam_succeed_if
の前に pam_google_authenticator
モジュール(マニュアルページを参照)を使用して、グループのこの部分をスキップできます。
# the other authentication methods, such as @include common-auth
auth [success=1 default=ignore] pam_succeed_if.so user ingroup group
auth required pam_google_authenticator ...
一部のSFTPクライアントは2FAを処理できます。たとえば、FileZillaとWinSCPで2FAを使用していますが、それらは機能します。また、ssh-key認証をセットアップしており、2FAとともに機能します。
しかし、あなたの質問は興味深いものであり、簡単な調査を行いました。 この答え が見つかりました。
そのため、別々のsshインスタンスを実行することは可能です(そして簡単です)。私はすでにそれをテストしました。
sshd_config
ファイルの個別のコピーを作成します。
$ Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_pwd
$ Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_2fa
これらの新しいconfig
ファイルを編集します。変更する必要があるものの1つはshhポートです。例によると:
2.a)sshd_config_pwd
特定の行は次のとおりです。
Port 1022
...
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM no
2.b)sshd_config_2fa
特定の行は次のとおりです。
Port 2022
...
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
ファイアウォールに必要なポートを開きます。例によると:
$ Sudo ufw limit 1022
$ Sudo ufw limit 2022
新しいsshインスタンスを実行します。
$ Sudo /usr/sbin/sshd -f /etc/ssh/sshd_config_pwd
$ Sudo /usr/sbin/sshd -f /etc/ssh/sshd_config_2fa
それでおしまい。