![OpenSSH 双因素身份验证](https://linux22.com/image/967439/OpenSSH%20%E5%8F%8C%E5%9B%A0%E7%B4%A0%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我正在使用 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 版以来,实际上有一个用于双因素身份验证的参数。而不是RequiredAuthentications
。AuthenticationMethods
该参数是相同的。
由于 Ubuntu 6.2 版本中没有 deb 包,因此您必须自己编译,但使用 auto-apt 非常简单。
答案2
只需放弃密码登录支持,只允许使用密钥登录。您的用户可以在创建密钥时使用密码短语保护密钥,这样就同样安全了。
由于看起来您想要的选项不适用于打包的 ssh 版本,因此您需要自行编译软件并管理 ssh 的安全性,或者等到打包了正确的版本。我会等待。