特定用户的 Google Authenticator PAM

特定用户的 Google Authenticator PAM

我当前的 sshd PAM 配置:

#%PAM-1.0
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    required     pam_loginuid.so

我正在添加 Google Authenticator,但我们还没有准备好将其推广给所有用户。

相信以下内容应要求“gauth”组中的用户使用 Google Authenticator PAM,但希望有人能在我将自己锁定在 SSH 之外之前检查我的工作...

#%PAM-1.0
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
auth [success=1 default=ignore] pam_succeed_if.so quiet user notingroup gauth
auth required pam_google_authenticator.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    required     pam_loginuid.so

我是否正确理解“success=1”的意思是“如果成功则跳过下一行”?

答案1

我相信你的理解是正确的,基于pam 文档

如果您打开另一个连接进行测试,并保持原始 ssh 会话保持连接,您应该能够进行更改、测试并在需要时恢复(确保它不会超时!)

答案2

在使用 PAM 堆栈时,我通常不会使用实际上想要修改的服务,因为这是一项“生产性”服务。

因此在这种情况下我将使用 /etc/pam.d/login 而不是远程控制.login 可以通过简单调用来测试:

login

如果 PAM 配置看起来不错,我可以将其转移到孕期远程控制或者其他什么。(谁需要本地登录 ;-)

是的,成功=n意味着如果成功,则跳过下一步n線。

相关内容