如何在Ubuntu中为使用Google身份validation器的Ubuntu用户设置双因素身份validation?

如何在Ubuntu中为使用Google身份validation器的Ubuntu用户设置双因素身份validation(也可以为非Google帐户设置)?

注意:为用户激活双因素身份validation并且未为root设置相同后,您将无法直接以root用户身份登录。 在这种情况下,一种方法是使用我们为其设置的任何其他sudo用户,然后使用sudo su -切换到root用户。


使用以下步骤进行设置。

  1. 在给定的软件包下安装以安装Google身份validation器,我们将其用作PAM身份validation的附加组件:

     sudo apt-get install libpam-google-authenticator 
  2. 现在编辑/etc/pam.d/sshd此文件并添加Google身份validation器,如下所示:

     *sudo vim /etc/pam.d/sshd 

    在此文件的顶部输入以下内容 –

     auth required pam_google_authenticator.so 
  3. 这里我们必须在/etc/ssh/sshd_config进行更改以确保ssh使用Google身份validation器,这样我们确保ssh使用双因素身份validation。

     vim /etc/ssh/sshd_config 

    在这个文件中,我们必须找到ChallengeResponseAuthentication并取消注释和/或修改它,如下所示(简而言之,将其设置为yes:P):

     ChallengeResponseAuthentication yes 

    额外或GUI双因素身份validation否则跳过此步骤并转到步骤4:要启用GUI登录,请编辑/etc/pam.d/common-auth

     sudo vim /etc/pam.d/common-auth 

    现在在auth [success=1 default=ignore] pam_unix.so nullok_secure行上方添加此auth required pam_google_authenticator.so auth [success=1 default=ignore] pam_unix.so nullok_secure然后保存文件。

  4. 现在更改为您要设置的帐户。
    注意:我建议在系统上创建至少两个超级用户帐户而不是root帐户并至少配置它,其中一个首先配置但不配置root帐户。)

     sudo su - testuser1 
  5. 现在我们将使用以下命令为此testuser1设置双因素身份validation:

     google-authenticator 
  6. 运行此命令将询问您下面的问题。 (推荐答案是肯定的)

    您是否希望身份validation令牌基于时间(y / n)y

  7. 之后它会显示QR码和紧急划痕代码以及其他一些细节。 输出应该如下图所示:

    在此处输入图像描述

  8. 现在,您需要使用Android / Apple / Blackberry手机从各自的市场下载并安装Google身份validation器应用程序,例如Google Play商店。 这将生成您登录的代码。

    以下是从应用程序Android手机中获取的应用程序图标和应用程序的屏幕截图。

    在此处输入图像描述在此处输入图像描述

  9. 在手机上启动应用程序并扫描QR码,或者使用系统上QR码下方的密钥和validation码 ,您也可以在上面的第一个屏幕截图中看到。

  10. 完成所有这些操作后,记下并将紧急刮刮代码保存在安全的地方是非常重要的 ,因为这些代码可以帮助您,以防您以某种方式被锁定。

  11. 在这个时候你应该看一下屏幕的底部,它会问你一个下面的问题。 (推荐答案是肯定):

    您是否要我更新您的“/home/testuser1/.google_authenticator”文件(是/否)y

  12. 它会再问你一个问题,下面问题的建议答案也是:

    您是否要禁止多次使用同一身份validation令牌? 这会限制您每30秒登录一次,但这会增加您注意甚至阻止中间人攻击的机会(y / n)y

  13. 下一个问题将如下所示,建议的答案是否:

    默认情况下,令牌有效30秒,为了弥补客户端和服务器之间可能存在的时间偏差,我们在当前时间之前和之后允许使用额外的令牌。 如果遇到时间同步不佳的问题,可以将窗口从默认大小1:30增加到大约4分钟。 你想这样做(是/否)n

  14. 最后一个问题如下所示,建议的答案是肯定的:

    如果您登录的计算机未通过暴力登录尝试进行强化,则可以为身份validation模块启用速率限制。 默认情况下,这会将攻击者限制为每30秒不超过3次登录尝试。 您想要启用速率限制(y / n)y

  15. 现在切换退出此帐户以返回root帐户:

     exit 
  16. 现在重启ssh服务

     service ssh restart 

现在只需为您设置的用户进行ssh会话,它将首先询问您是否可以从手机输入validation码,然后它会要求输入用户密码。

在此处输入图像描述

这就是设置双因素身份validation所需的全部内容。 如果需要,请随时改进答案,请原谅我不太好的语言。