我正在使用 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:
/etc/pam.d/sshd:
它允许在给出公钥时跳过密码提示。