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


Answers:


16

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


使用以下步骤进行设置。

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

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

    *sudo vim /etc/pam.d/sshd
    

    在文件顶部的下面输入以下内容-

    auth required pam_google_authenticator.so
    
  3. 在这里,我们必须进行更改/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然后保存文件。

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

    sudo su - testuser1
    
  5. 现在,我们将使用以下命令为此设置两因素身份验证testuser1

    google-authenticator
    
  6. 运行此命令将询问您以下问题。(建议答案是)

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

  7. 之后,它将向您显示QR码和紧急刮擦码以及其他一些详细信息。输出应如下图所示:

    在此处输入图片说明

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

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

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

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

  10. 完成所有这些步骤后,记下紧急暂存代码并将其保存在安全的地方非常重要,因为这些代码可以帮助您以防万一。

  11. 此时,您应该在屏幕底部询问以下问题。(建议答案是):

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

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

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

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

    默认情况下,令牌的有效期为30秒,并且为了补偿客户端和服务器之间可能出现的时间偏差,我们允许在当前时间前后添加一个额外的令牌。如果您遇到时间同步不良的问题,可以将窗口从默认大小1:30min增加到大约4min。您是否要这样做(y / n)n

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

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

  15. 现在,从该帐户退出以返回到根帐户:

    exit
    
  16. 现在重新启动ssh服务

    service ssh restart
    

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

在此处输入图片说明

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


卸载时,每次使用sudo运行命令时都会出现问题:sudo:PAM身份验证错误:模块未知
bagustris,2016年

@bagustris您应编辑文件“ /etc/pam.d/common-auth”,并删除“必需的认证pam_google_authenticator.so”这一条目。卸载后。
狂欢

编辑/etc/pam.d/common-auth,它需要sudo。因为sudo不再起作用,所以我需要实时操作系统(或者,由于与Mac OS双重引导,因此可以在OS X中使用可写权限对其进行编辑)。
bagustris '16

1
@bagustris您可以通过进入恢复模式来实现。
Hrish

1
如果在步骤2中使用auth optional而不是,则不松动访问计算机会更安全auth required。否则如果会话崩溃并且该过程未完成无法再登录
Pascal,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.