Ssh
SSH 認證:(公鑰異或密碼)+ google 驗證碼
我正在使用 Debian 靶心。我正在嘗試設置 SSH 兩種類型的登錄:
- 來自 Google Authenticator 的密碼 + 程式碼(如果使用者設置它,“nullok”選項),
- 來自 Google Authenticator 的公鑰 + 程式碼(如果使用者設置了它,“nullok”選項)。
類型 #1 對我有用。在類型 #2 中,我有來自 GA 的公鑰 + 密碼(不是公鑰密碼)+ 程式碼。我將此行添加到 /etc/ssh/sshd_config
AuthenticationMethods publickey,keyboard-interactive keyboard-interactive
如果提供了密鑰,我希望使用者不會被提示輸入密碼。準確地說,如果提供了公鑰,如何繞過 pam_unix.so 需求?
有什麼辦法可以在一台機器上完成我想要的嗎?提前致謝。
大概我解決了。
CERN 的 PAM_2FA 項目包含次要的 pam 模組:pam_ssh_user_auth.so。該模組可以告訴 PAM 是否有任何先前成功的 sshd 身份驗證,如公鑰 (PAM_SUCCESS)。所以我做了以下更改:
/etc/ssh/sshd_config:
PasswordAuthentication no ChallengeResponseAuthentication yes UsePAM yes AuthenticationMethods keyboard-interactive:pam publickey,keyboard-interactive:pam
/etc/pam.d/sshd:
auth [success=2 ignore=ignore default=die] pam_ssh_user_auth.so auth [success=1 default=ignore] pam_unix.so nullok auth requisite pam_deny.so auth [success=ok ignore=ignore default=bad] pam_google_authenticator.so nullok auth required pam_permit.so
它允許在給出公鑰時跳過密碼提示。