sshd:如何在以下情况下为特定用户启用PAM身份验证


9

我正在使用sshd,并允许使用公钥身份验证登录。

我想允许选择的用户使用PAM两因素身份验证模块登录。

有什么方法可以允许特定用户使用PAM两因素身份验证?

同样,我只想为特定帐户启用密码验证。我希望我的SSH服务拒绝密码验证企图阻挠想成为黑客进入以为我不会接受密码验证-除了其中有人知道我的戒备森严的秘密账户,该账户的情况下启用密码。对于我的SSH客户端不允许我执行密钥或两因素身份验证的情况,我想这样做。


哪个两因素产品?
Scott Pack

google-authenticator
Brad

Answers:


8

您可能可以使用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)进行身份验证。我没有实际测试过这种配置,但是理论上是合理的。

您可以通过允许任何人使用两因素身份验证进行身份验证来简化此过程;大概只有那些拥有适当设备/配置的人才能成功,因此您实际上会获得相同的行为。


我正在做类似的事情-我已经用sshd允许Chal / Resp和Secret Key。实际上仅为Google-Authenticator质询/响应配置了一个帐户-因此其他帐户必须仅使用秘密密钥。我想这和我要得到的一样好...
Brad


3

使用以下解决方案,可以为特定用户禁用PAM模块(Google身份验证器),

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 Blog

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.