如何在 Linux 上为 SSH 启用双因素身份验证 (2FA)
在本文中,我们将向您展示如何使用 Google PAM(可插入身份验证模块)和 Microsoft Authenticator 移动应用在 Linux 上启用双因素身份验证 (2FA) 进行 SSH 登录。当您通过 SSH 在 Linux 主机上进行身份验证时,2FA 允许您添加额外的安全层。启用 2FA 后,除了用户名和密码(或 RSA 密钥)之外,您还必须从智能手机输入一次性数字密码 (TOTP),才能通过 SSH 登录 Linux。
在您的智能手机上安装 Microsoft Authenticator 移动应用(Google Store 和 App Store 中均提供)。
在本指南中,我选择了 Microsoft Authenticator,因为我已在 Azure 中使用它进行 MFA 身份验证。如果需要,您可以使用 Google 身份验证器。
现在您需要在 Linux 主机上安装并配置 Google PAM:
通过 SSH 连接到您的 Linux 主机;
-
使用包管理器安装 Google PAM 身份验证器:
Debian/Ubuntu:sudo apt-get install libpam-google-authenticatorRHEL/CentOS/Fedora:
yum install google-authenticator 运行命令:
google-authenticator该工具将生成并在控制台中显示二维码:
在智能手机上运行 Microsoft Authenticator 应用。选择添加账户->个人账户->扫描二维码;
使用应用程序扫描二维码。您的用户名和服务器的新条目将出现在身份验证器应用程序中。您将使用此项来获取连接到您的主机的一次性密码;
请注意,您的 Linux 控制台中会显示密钥和紧急代码;
如果您丢失/损坏了智能手机,您将需要这些代码才能连接到主机。把它们放在安全的地方!
然后 google-authenticator 显示一些其他问题:
您希望身份验证令牌基于时间吗?
Y -> Enter您想让我更新您的“/home/sysops/.google_authenticator”文件吗?
Y -> Enter您想禁止多次使用同一身份验证令牌吗?
Y -> Enter默认情况下,令牌的有效期为 30 秒……
Y -> Enter默认情况下,一次性令牌每 30 秒更改一次。对于大多数情况来说,这是最佳选择。但是,Linux 主机和智能手机的时间同步非常重要。
您想启用速率限制吗?
Y -> Enter您可以一次性配置所有设置: $ google-authenticator -t -f -d -w 3 -e 5 -r 3 -R 30-t - 启用使用一次性代码登录
-f - 将配置保存到 ~/.google_authenticator
-d - 拒绝使用以前的代码
-w 3 - 允许使用一个前一个和一个后一个令牌(如果时间不同步)
-e 5 - 生成 5 个紧急代码
- r 3 -R 30 - 允许每 30 秒使用不超过 3 次登录







