如何使用 Google 身份验证器为 Ubuntu 用户设置双因素身份验证(也可以为非 Google 帐户设置)?
答案1
笔记:一旦为用户激活了双因素身份验证,但尚未为 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
并取消注释和/或修改它以如下所示(简而言之,将其设置为是:P):ChallengeResponseAuthentication yes
额外或GUI双因素身份验证,否则跳过此步骤并转到步骤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
,然后保存文件。现在更改为您想要设置的帐户。
(笔记:我建议在系统上除 root 帐户外还创建至少两个超级用户帐户,并至少先配置其中一个,而不是 root 帐户。)sudo su - testuser1
现在我们将使用以下命令来设置双因素身份验证
testuser1
:google-authenticator
运行此命令将询问您以下问题。(建议回答是)
您是否希望身份验证令牌基于时间 (y/n) y
之后,它会显示二维码和紧急刮擦码以及其他一些详细信息。输出应如下图所示:
现在你需要使用你的安卓/苹果/黑莓手机下载并安装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
现在重新启动 ssh 服务
service ssh restart
现在只需为您设置的用户进行 ssh 会话,它会首先要求您输入一个验证码,您可以从手机上输入该验证码,然后它会要求输入用户密码。
这就是设置双因素身份验证所需的全部内容。如有需要,请随时改进答案,请原谅我的语言不太好。