在 CentOS/RHEL 服务器上设置 SSH 两步验证 (2FA)

本教程将向您展示如何设置 SSH 两步验证 在 CentOS/RHEL 服务器上使用著名的 Google Authenticator。 它将大大提高您的 CentOS/RHEL 服务器上 SSH 服务的安全性。

两因素身份验证的工作原理

通常您只需要输入密码或使用 SSH 密钥登录远程 CentOS/RHEL 服务器。 双因素身份验证 (2FA) 要求您输入两条信息才能登录,因此您还需要输入基于时间的一次性密码才能登录您的 SSH 服务器。 这个一次性密码是使用 TOTP 算法计算的,这是一种 IETF 标准。 如今,许多网站和服务(Facebook、Google、Twitter 等)为用户提供 2FA 以保护他们的帐户,同时为您的 SSH 服务器启用 2FA 也是一个好主意。

本教程将向您展示如何设置

  • 使用 2FA 进行密码验证
  • 使用 2FA 进行公钥认证

笔记:我们将在本文中使用的开源服务器软件称为 google-authenticator,它是从 EPEL 存储库安装的。 谷歌公司不以任何形式参与认证过程。 服务器软件和移动应用程序不需要网络访问。

第 1 步:在 CentOS/RHEL 服务器上安装和配置 Google Authenticator

登录您的 CentOS/RHEL 服务器并运行以下命令以从 EPEL(企业 Linux 的额外软件包)存储库安装 Google 身份验证器。 qrencode 用于在命令行生成二维码。

sudo dnf install -y epel-release  sudo dnf install -y google-authenticator qrencode qrencode-libs

然后运行 google-authenticator 命令在 ~/.ssh/ 目录。

google-authenticator -s ~/.ssh/google_authenticator

当被问到“您希望身份验证令牌是基于时间的吗?” 回答 .

然后,您将看到需要使用手机上的 TOTP 应用程序扫描的二维码。