我正在使用 sshd,并允许使用公钥认证登录。
我想允许选定的用户使用 PAM 双因素身份验证模块登录。
有什么方法可以允许特定用户进行 PAM 双因素身份验证?
同样的道理——我只想为特定账户启用密码验证。我希望我的 SSH 守护进程拒绝密码验证尝试,以防止潜在的黑客认为我不会接受密码验证——除非有人知道我严密保护的秘密账户,这是密码已启用。我希望在我的 SSH 客户端不允许我进行密钥或双因素身份验证的情况下执行此操作。
答案1
您可以使用pam_listfile
模块来处理这个问题。创建一个/etc/pam.d/sshd
如下所示的文件:
auth requisite pam_listfile.so item=user sense=allow file=/etc/authusers
auth sufficient pam_securid.so
auth required pam_deny.so
这将仅允许列出的人员/etc/authusers
使用双因素模块(在我们的例子中为 secureid)进行身份验证。我还没有实际测试过此配置,但理论上是可行的。
你可以通过允许让它变得更简单任何人使用双因素身份验证进行身份验证;据推测,只有拥有适当设备/配置的人才能成功,因此您实际上会获得相同的行为。
答案2
为了禁用没有Google 身份验证器配置完成后,添加nullok
选项/etc/pam.d/sshd
:
auth required pam_google_authenticator.so nullok
更多详细信息请参阅:https://github.com/google/google-authenticator-libpam#setting-up-a-user
答案3
使用以下解决方案,可以为特定用户禁用 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 博客