我正在使用 sshd,并允许使用公钥身份验证登录。
我希望允许选择的用户使用 PAM 两因素身份验证模块登录。
有什么方法可以为特定用户允许 PAM 两因素身份验证?
出于同样的原因 - 我只想为特定帐户启用密码身份验证。我希望我的SSH服务拒绝密码验证企图阻挠想成为黑客进入以为我不会接受密码验证-除了其中有人知道我的戒备森严的秘密账户,该账户的情况下是启用密码。我想在我的 SSH 客户端不允许我执行密钥或双因素身份验证的情况下执行此操作。
您可能可以使用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
Run Code Online (Sandbox Code Playgroud)
这将只允许列出/etc/authusers能够使用双因素模块(在我们的示例中为 secureid)进行身份验证的人员。我还没有实际测试过这种配置,但理论是合理的。
您可以通过允许任何人使用两因素身份验证进行身份验证来简化它;大概只有那些拥有适当设备/配置的人才能成功,所以你会得到有效的相同行为。
为了在没有配置Google Authenticator 的情况下为用户禁用双因素身份验证,请添加以下nullok选项/etc/pam.d/sshd:
auth required pam_google_authenticator.so nullok
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅:https : //github.com/google/google-authenticator-libpam#setting-up-a-user
小智 5
使用以下解决方案,可以为特定用户禁用 PAM 模块(谷歌身份验证器)-
1) 在 Linux 实例上创建用户组。对于此新组中的用户,MFA/PAM 将被禁用-
sudo groupadd <groupname>
Run Code Online (Sandbox Code Playgroud)
2)创建用户或将现有用户添加到新创建的组中-
sudo useradd <username>
sudo usermod -a -G <groupname> <username>
Run Code Online (Sandbox Code Playgroud)
3) 编辑 /etc/pam.d/sshd 文件并添加以下语句以跳过新创建的组的 PAM 模块-
auth [success=done default=ignore] pam_succeed_if.so user ingroup <groupname>
Run Code Online (Sandbox Code Playgroud)
可选的-
如果此新组需要完全访问权限,则将以下行添加到 visudo 文件中 -
%<groupname>ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
当创建用户并将其添加到新组时,将跳过这些用户的 MFA。
引用自 - TechManyu 博客