如何使用 Google 身份验证器为 Ubuntu 用户在 Ubuntu 中设置两因素身份验证?

Hri*_*ish 11 authentication pam pam-environment two-factor-authentication

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

Hri*_*ish 16

注意:一旦您为用户激活了 2-factor 身份验证并且没有为 root 设置相同的身份,您将永远无法直接以 root 身份登录。在这种情况下,一种解决方法是使用我们为其设置的任何其他 sudo 用户,然后使用sudo su -它切换到 root 用户。


使用以下步骤进行设置。

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

    sudo apt-get install libpam-google-authenticator
    
    Run Code Online (Sandbox Code Playgroud)
  2. 现在编辑/etc/pam.d/sshd此文件并添加 Google 身份验证器,如下所示:

    *sudo vim /etc/pam.d/sshd
    
    Run Code Online (Sandbox Code Playgroud)

    在顶部下方输入此文件-

    auth required pam_google_authenticator.so
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在这里,我们必须进行更改/etc/ssh/sshd_config以确保 ssh 使用 Google 身份验证器,这样我们才能确保 ssh 使用双因素身份验证。

    vim /etc/ssh/sshd_config
    
    Run Code Online (Sandbox Code Playgroud)

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

    ChallengeResponseAuthentication yes
    
    Run Code Online (Sandbox Code Playgroud)

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

    sudo vim /etc/pam.d/common-auth
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    sudo su - testuser1
    
    Run Code Online (Sandbox Code Playgroud)
  5. 现在我们将使用以下命令为此设置两因素身份验证testuser1

    google-authenticator
    
    Run Code Online (Sandbox Code Playgroud)
  6. 运行此命令将询问您以下问题。(推荐答案是肯定的)

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

  7. 之后,它会向您显示二维码和紧急刮刮码以及其他一些细节。输出应如下所示:

    在此处输入图片说明

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

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

    在此处输入图片说明 在此处输入图片说明

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

  10. 完成所有这些操作后,非常重要的是记下您的紧急刮擦代码并将其保存在安全的地方,因为这些代码可以在您不知何故被锁定时为您提供帮助。

  11. 此时,您应该查看屏幕底部,它向您询问以下问题。(推荐答案是肯定的):

    你想让我更新你的“/home/testuser1/.google_authenticator”文件(y/n)y

  12. 再次,它会再问你一个问题,以下问题的推荐答案也是:

    您想禁止多次使用同一身份验证令牌吗?这将限制您大约每 30 秒登录一次,但它增加了您注意到甚至防止中间人攻击的机会 (y/n) y

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

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

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

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

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

    exit
    
    Run Code Online (Sandbox Code Playgroud)
  16. 现在重新启动 ssh 服务

    service ssh restart
    
    Run Code Online (Sandbox Code Playgroud)

现在只需为您设置的用户进行 ssh 会话,它会首先要求您输入验证码,您可以从手机输入该验证码,然后它会要求输入用户密码。

在此处输入图片说明

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