Authentication

特定使用者的 Google Authenticator PAM

  • June 15, 2016

我目前的 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

我是否正確理解“成功= 1”的意思是“如果成功則跳過下一行”?

根據pam 文件,我相信您的理解是正確的。

如果您打開另一個連接進行測試,您應該能夠進行更改、測試並在需要時恢復,保持原來的 ssh 會話保持連接(但要確保它不會超時!)

在使用 PAM 堆棧時,我通常不使用我實際上想要修改的服務,因為這是一項“生產性”服務。

因此,在這種情況下,我將使用 /etc/pam.d/login 而不是ssh進行測試。登錄可以通過簡單地呼叫來測試:

login

如果 PAM 配置看起來不錯,我可以將其傳輸到gdmssh或其他任何東西。(誰需要本地登錄 ;-)

是的,success=n意味著,如果成功,跳過接下來的n行。

引用自:https://serverfault.com/questions/297713