OpenSSH 双因素身份验证

OpenSSH 双因素身份验证

我正在使用 Ubuntu Server 13.04,并希望使用 OpenSSH 进行 sftp。我已经设置好了一切,唯一不起作用的是双因素身份验证。目前它要求输入密码或公钥,但我需要它要求输入密码和公钥。

sshd_config 中似乎有一个参数可用于此目的:

RequiredAuthentications{1,2} 

列表如下:linux.die.net

所以我把这行添加到/etc/sshd_config

RequiredAuthentications2 publickey,password

但 sshd -t 总是会出现这个错误

/etc/ssh/sshd_config: line 26: Bad configuration option: RequiredAuthentications2

我的 OpenSSH 版本是6.1.p1-4。从这篇文章中我发现它只在 openssh-6.2 中可用:(最后一篇文章):bugzilla.mindrot.org

为了在另一台装有 Linux Mint 的计算机上测试这个版本,我尝试从源代码编译这个版本,因为它不适用于 Ubuntu 稳定版。

我按照这些教程中的建议使用 auto-apt 完成了此操作
www.howtogeek.com -1
www.howtogeek.com -2

在 Linux Mint 计算机上结果是一样的。

所以我暂时陷入困境。

附言:我在其他地方发现您可以使用第二个身份验证脚本,但我不确定这是否是一个好的、安全的解决方案。我想将服务器与 Windows 中的普通 ftp 程序(如 WinSCP 或 Filezilla)一起使用。我不知道他们是否会理解这种身份验证方式。

答案1

我终于解决了这个问题。

自 opensshd 6.2 版以来,实际上有一个用于双因素身份验证的参数。而不是RequiredAuthenticationsAuthenticationMethods该参数是相同的。

由于 Ubuntu 6.2 版本中没有 deb 包,因此您必须自己编译,但使用 auto-apt 非常简单。

答案2

只需放弃密码登录支持,只允许使用密钥登录。您的用户可以在创建密钥时使用密码短语保护密钥,这样就同样安全了。

由于看起来您想要的选项不适用于打包的 ssh 版本,因此您需要自行编译软件并管理 ssh 的安全性,或者等到打包了正确的版本。我会等待。

相关内容