我即将对使用libpam_google_authenticator
. 当用户从某些 IP 地址登录时,我希望能够免除此要求。
我有这个/etc/pam.d/sshd
:
身份验证需要 pam_google_authenticator.so
这在/etc/ssh/sshd_config
:
ChallengeResponseAuthentication 是
我考虑过使用 中的Match
指令sshd_config
,但联机帮助页建议ChallengeResponseAuthentication
不能以这种方式使用。无论如何,我不确定这是否可以绕过pam
要求。
有没有一种方法可以免除具有特定 IP 地址的客户端的质询响应?
我没有专门用 google auth 来做这件事,但我正在用 pam_access 和子堆栈做类似的事情。我这样做是为了在 /etc/pam.d 中创建一个名为 yubi-auth 的文件。它包含:
然后在密码验证中,我使用
auth substack yubi-auth
. 结果是,如果用户来自 acceess.conf 中批准的 ip 地址,则他们不必使用 yubikey,否则他们必须使用它。(如果他们愿意,他们总是可以使用它)。我没有用 google auth 测试过这个方法,但我认为同样的逻辑应该有效。
您可以运行两个具有不同配置的 sshd 实例。在极端情况下:使用一个补丁版本(因为这可能无法通过配置文件实现),它使用与 ssh 不同的 PAM 字符串,以便您可以为两个实例创建不同的 PAM 配置。或者您在 chroot / lxc 中启动一个实例,以便它看到不同的 PAM 配置。这可能更容易(维护)。
然后可以通过 iptables (DNAT) 完成客户端选择。只需将相应的客户端发送到第二个实例的端口(或发送到 lxc IP)。