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 用户。
使用以下步骤进行设置。
安装下面给定的软件包以安装 Google 身份验证器,我们将其用作 PAM 身份验证的附加组件:
sudo apt-get install libpam-google-authenticator
Run Code Online (Sandbox Code Playgroud)现在编辑/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)在这里,我们必须进行更改/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然后保存文件。
现在更改为您要设置它的帐户。
(注意:我建议在系统上创建至少两个超级用户帐户而不是 root 帐户并至少配置它,首先为其中一个而不是 root 帐户配置。)
sudo su - testuser1
Run Code Online (Sandbox Code Playgroud)现在我们将使用以下命令为此设置两因素身份验证testuser1:
google-authenticator
Run Code Online (Sandbox Code Playgroud)运行此命令将询问您以下问题。(推荐答案是肯定的)
您是否希望身份验证令牌基于时间 (y/n) y
之后,它会向您显示二维码和紧急刮刮码以及其他一些细节。输出应如下所示:

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

在手机上启动应用程序并扫描二维码,或者使用系统二维码下方给出的密钥和验证码,您也可以在上面的第一个屏幕截图中看到。
完成所有这些操作后,非常重要的是记下您的紧急刮擦代码并将其保存在安全的地方,因为这些代码可以在您不知何故被锁定时为您提供帮助。
此时,您应该查看屏幕底部,它向您询问以下问题。(推荐答案是肯定的):
你想让我更新你的“/home/testuser1/.google_authenticator”文件(y/n)y
再次,它会再问你一个问题,以下问题的推荐答案也是:
您想禁止多次使用同一身份验证令牌吗?这将限制您大约每 30 秒登录一次,但它增加了您注意到甚至防止中间人攻击的机会 (y/n) y
下一个问题如下所示,建议的答案是否定的:
默认情况下,令牌的有效期为 30 秒,为了补偿客户端和服务器之间可能的时间偏差,我们允许在当前时间之前和之后使用额外的令牌。如果您遇到时间同步不佳的问题,您可以将窗口从其默认大小 1:30 分钟增加到大约 4 分钟。你想这样做吗 (y/n) n
最后一个问题如下所示,建议的答案是肯定的:
如果您登录的计算机没有针对暴力登录尝试进行强化,您可以为身份验证模块启用速率限制。默认情况下,这会将攻击者限制为每 30 秒不超过 3 次登录尝试。是否要启用限速 (y/n) y
现在切换退出此帐户以返回 root 帐户:
exit
Run Code Online (Sandbox Code Playgroud)现在重新启动 ssh 服务
service ssh restart
Run Code Online (Sandbox Code Playgroud)现在只需为您设置的用户进行 ssh 会话,它会首先要求您输入验证码,您可以从手机输入该验证码,然后它会要求输入用户密码。

这就是设置双因素身份验证所需的全部内容。请随时在需要时改进答案,请原谅我的语言不太好。
| 归档时间: |
|
| 查看次数: |
14843 次 |
| 最近记录: |