在我运行 ubuntu 16.04 (LTS) 的其中一台测试服务器上启用 Google 身份验证器 (2 步骤身份验证) 后,我注意到无法再使用服务器上没有 Google 身份验证器配置文件的用户登录。我必须创建一个 Google 身份验证器配置文件 (密钥) 才能让此用户登录。
我现在的问题是:是否可以让某些用户使用 google 身份验证器,而其他用户只需 SSH 登录而无需使用 google 身份验证器。
细节:
user1 有一个带有 google 身份验证器的个人资料。
user2 没有使用 google 身份验证器的个人资料。
user1 通过 SSH 登录,填写自己的密码和 google authenticator 应用程序提供的代码,就可以登录了。
user2 通过 SSH 登录,填写密码即可登录(他不需要输入代码。
理想情况下最好有 2 个用户组,一个需要 Google 身份验证器代码,另一个不需要。
答案1
使用以下解决方案,可以为特定用户禁用 PAM 模块(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 博客
答案2
这可能会有帮助:禁用组的 PAM 模块。
您可以将一个用户放在一个google-authenticator
组中,将另一个用户放在另一个non-google-authenticator
组中。