使用公钥和PAM的SSH中的2因素身份验证


9

我正在尝试设置2因素身份验证。如果出现以下情况,我希望用户成功登录:

  • 公钥/私钥匹配(认证方式:publickey)或密码正确
  • 我的pam身份验证方法成功。

第二种身份验证方法是PAM文件。因此,我将其放入/usr/lib/pam/并添加auth required my_pam_module.so到中/etc/pam.d/sshd
到目前为止,我可以使用(publickey方法)或(密码和我的pam模块所需的任何东西)登录。因此,我添加AuthenticationMethods publickey,keyboard-interactive了内容/etc/sshd_config,现在我需要拥有公共密钥,密码和“我的pam模块需要什么”。

为了达到上述目的,我需要更改哪些行?我正在使用Mac OS X Mavericks(10.9)。如果您不熟悉Mac,它也可以帮助您在Linux系统上进行操作。

Answers:


2

使用“ publickey-> password-> your_module”或“ password-> your_module”非常容易。无法找到从第一个链中删除密码的方法

publickey,keyboard-interactive-表示将使用publickey auth,然后再使用键盘交互(那种逻辑AND),用逻辑OR的空格替换逗号,例如

认证方法publickey,keyboard-interactive:pam keyboard-interactive:pam


当我keyboard-interactive:pam在配置中写入内容时,出现以下错误:ssh_exchange_identification: Connection closed by remote host
Matt3o12

尝试以详细模式运行ssh客户端,它将为您提供更多信息,说明出了什么问题。等, 'SSH -vvv <主机名>'
梅德Sosnik

这是ssh的详细日志:pastebin.com/hXTaCJ6f。您还可以在下面找到我的服务器日志的相关部分(sshd正在报告的最新内容)。我需要用“ my_pam_method”替换pam吗?
Matt3o12,2014年

只是想知道,您是否在sshd配置中添加了“ ChallengeResponseAuthentication yes”和“ UsePAM yes”?
德米特里·索斯尼克

它没有设置为yes,但是我进行了更改,尽管什么都没有改变(仍然出现相同的错误)。它对您有用吗?如果是这样,您正在使用什么OpenSSL?
Matt3o12
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.