Ubuntu 16.04(LTS)を実行しているテストサーバーの1つでGoogle認証システム(2ステップ認証)を有効にした後、サーバーにGoogle認証システムプロファイルを持たないユーザーでログインできなくなったことに気付きました。このユーザーがログインできるようにするには、Google認証システムプロファイル(キー)を作成する必要がありました。
私の質問は、特定のユーザーにグーグル認証システムを使用させ、他のユーザーにグーグル認証システムなしでSSHログインさせることは可能でしょうか?.
詳細:
user1には、Google認証システムを持つプロファイルがあります。
user2には、Google認証システムを持つプロファイルがありません。
user1はSSH経由でログインし、Google認証システムアプリから提供されたパスワードとコードを入力すると、ログインできます。
user2はSSH経由でログインし、パスワードを入力してログインできます(コードを入力する必要はありません)。
Google認証コードが必要なユーザーグループと不要なユーザーグループの2つのユーザーグループが理想的です。
以下のソリューションを使用すると、特定のユーザーに対してPAM Module(google authenticator)を無効にできます。
1)Linuxインスタンスでユーザーグループを作成します。この新しいグループに存在するユーザーのMFA/PAMは無効になります。
Sudo groupadd <groupname>
2)ユーザーを作成するか、既存のユーザーを新しく作成したグループに追加します-
Sudo useradd <username>
Sudo usermod -a -G <groupname> <username>
3)/etc/pam.d/sshdファイルを編集し、以下のステートメントを追加して、新しく作成されたグループのPAMモジュールをスキップします-
auth [success=done default=ignore] pam_succeed_if.so user ingroup <groupname>
オプション
この新しいグループにフルアクセスが必要な場合は、visudoファイルに次の行を追加します。
%<groupname>ALL=(ALL) NOPASSWD: ALL
ユーザーが作成されて新しいグループに追加されると、それらのユーザーのMFAはスキップされます。
参照元- TechManyuブログ
これが役立つ場合があります: グループのPAMモジュールを無効にする 。
1人のユーザーをgoogle-authenticator
グループに、他のユーザーをnon-google-authenticator
グループに配置できます。