我正在尝试设置两因素身份验证。我希望用户在以下情况下成功登录:
- 公私钥/公钥匹配(认证方式:publickey)或密码正确
- 我的pam验证方法成功了。
第二种身份验证方法是 PAM 文件。所以我将它放入/usr/lib/pam/
并添加auth required my_pam_module.so
到/etc/pam.d/sshd
.
到目前为止,我可以使用(公钥方法)或(密码以及我的 pam 模块所需的任何内容)登录。所以我添加了AuthenticationMethods publickey,keyboard-interactive
,/etc/sshd_config
现在我需要拥有公钥、密码和“我的 pam 模块所需的任何内容”。
为了实现我上面描述的目标,我需要改变哪些行?我使用的是 Mac OS X Mavericks (10.9)。如果您不熟悉 Mac,它也可以帮助您在 Linux 系统上执行操作。
答案1
对于“publickey->password->your_module”或“password->your_module”来说非常简单。找不到从第一链中删除密码的方法
publickey,keyboard-interactive - 意味着将使用 publickey 身份验证并在此之后进行键盘交互(逻辑 AND 类型),将逗号替换为逻辑 OR 的空格,例如
身份验证方法 publickey、键盘交互:pam 键盘交互:pam