Answers:
注意:一旦激活了用户的2因子验证,并且没有为root设置相同的身份,则将永远无法直接以root身份登录。在这种情况下,一种解决方法是使用我们为其设置了其他任何sudo用户,然后使用sudo su -
切换到root用户。
使用以下步骤进行设置。
在给定的软件包下面安装以安装Google身份验证器,我们将其用作PAM身份验证的附加组件:
sudo apt-get install libpam-google-authenticator
现在,编辑/etc/pam.d/sshd
此文件并添加Google Authenticator,如下所示:
*sudo vim /etc/pam.d/sshd
在文件顶部的下面输入以下内容-
auth required pam_google_authenticator.so
在这里,我们必须进行更改/etc/ssh/sshd_config
以确保ssh使用Google Authenticator,这样我们可以确保ssh使用两因素身份验证。
vim /etc/ssh/sshd_config
在此文件中,我们必须查找ChallengeResponseAuthentication
并取消注释和/或将其修改为如下所示(简而言之,将其设置为yes:P):
ChallengeResponseAuthentication yes
额外或GUI 2因子身份验证,否则,请跳过此步骤,然后转到步骤4:要启用它进行GUI登录,请编辑/etc/pam.d/common-auth
:
sudo vim /etc/pam.d/common-auth
然后将其添加auth required pam_google_authenticator.so
到行上方,auth [success=1 default=ignore] pam_unix.so nullok_secure
然后保存文件。
现在,更改为您要设置的帐户。
(注:我建议在系统上创建至少两个超级用户帐户,而不是根帐户,并至少对其进行配置,首先为其中一个而不是根帐户进行配置。)
sudo su - testuser1
现在,我们将使用以下命令为此设置两因素身份验证testuser1
:
google-authenticator
运行此命令将询问您以下问题。(建议答案是)
您是否希望身份验证令牌基于时间(y / n)y
之后,它将向您显示QR码和紧急刮擦码以及其他一些详细信息。输出应如下图所示:
现在,您需要使用Android / Apple / Blackberry手机从相应的市场(例如Google Play商店)下载并安装Google Authenticator应用程序。它将生成代码供您登录。
以下是从Android手机应用程序中获取的应用程序图标和应用程序的屏幕截图。
在手机上启动应用程序并扫描QR码,或者使用系统QR码下方提供的密钥和验证码,也可以在上面的第一个屏幕截图中看到。
完成所有这些步骤后,记下紧急暂存代码并将其保存在安全的地方非常重要,因为这些代码可以帮助您以防万一。
此时,您应该在屏幕底部询问以下问题。(建议答案是):
是否要我更新您的“ /home/testuser1/.google_authenticator”文件(是/否)是
再次会问您一个问题,以下问题的推荐答案也是:
您是否要禁止多次使用同一身份验证令牌?这会将您限制为每30秒登录一次,但会增加您注意到甚至阻止中间人攻击(y / n)的机会y
下一个问题将如下所示,建议的答案是“否”:
默认情况下,令牌的有效期为30秒,并且为了补偿客户端和服务器之间可能出现的时间偏差,我们允许在当前时间前后添加一个额外的令牌。如果您遇到时间同步不良的问题,可以将窗口从默认大小1:30min增加到大约4min。您是否要这样做(y / n)n
最后一个问题如下所示,建议的答案是:
如果您登录的计算机没有针对暴力登录尝试进行加固,则可以为身份验证模块启用速率限制。默认情况下,这会将攻击者限制为每30秒不超过3次登录尝试。是否要启用速率限制(y / n)y
现在,从该帐户退出以返回到根帐户:
exit
现在重新启动ssh服务
service ssh restart
现在,只需为您为其设置的用户进行ssh会话,它将首先询问您可以从手机输入的验证码,然后询问用户密码。
这就是设置两因素身份验证所需的全部。请随时根据需要改进答案,请原谅我的语言不太好。
auth optional
而不是,则不松动访问计算机会更安全auth required
。否则,如果会话崩溃并且该过程未完成,则无法再登录。