是否可以启用 ssh 同时使用密钥对和密码,这样客户端既需要密钥文件也知道密码?这样,只有一个就行不通了。
我并不想使用 radius 或其他东西进行两步身份验证。我只是想稍微提高一点安全性。
谢谢
答案1
现在在 RHEL / CentOS 7 以及任何具有最新版本 OpenSSH 的系统上,您可以使用:
AuthenticationMethods "publickey,password" "publickey,keyboard-interactive"
另请参阅:https://lwn.net/Articles/544640/
还需要注意的是,AuthenticationMethods 功能仅适用于 SSH 2 协议,并且列出的每种身份验证方法也必须在 sshd_config 文件中明确启用。
这里有一个详细的解释:
https://sysconfig.org.uk/two-factor-authentication-with-ssh.html
Match User johndoe
AuthenticationMethods publickey,keyboard-interactive
将逗号理解为逻辑 AND。登录时,将首先检查 johndoe 的密钥对,如果匹配,您将看到以下内容:
Authenticated with partial success.
然后,系统会要求他输入密码。所以,在不知不觉中,您已经设置了 MFA。您的密钥对就是您拥有的,账户密码就是您知道的。这可能是使用 SSH 设置 MFA 的最简单方法,而且已经比单因素身份验证更好了。