如何在Ubuntu中的SSH中配置两因素身份验证?

两因素验证

La 两要素身份验证(2FA)并不是可以在社交媒体上使用的独特功能 或在任何其他网站上。 嗯,这种安全措施也可以在操作系统中实现。

这就是为什么 今天,我们将看到如何在Ubuntu中的SSH中实现两因素身份验证 以及使用著名的Google Authenticator的衍生产品,这将大大提高您的OpenSSH服务器的安全性。

通常,您只需要输入密码或使用SSH密钥即可远程登录系统。

两因素身份验证(2FA)要求输入两条信息才能登录。

因此,您还需要输入基于时间的一次性密码来登录SSH服务器。

使用IETF标准的TOTP算法计算该一次性密码。

在Ubuntu及其衍生产品中安装和配置Google Authenticator

我们要执行的第一步是在系统中安装Google Authenticator,因此我们将在系统中打开一个终端(可以通过组合键Ctrl + Alt + T来完成),并在其中键入以下命令:

sudo apt install libpam-google-authenticator

安装完成 我们将使用以下命令运行新安装的应用程序:

google-authenticator

执行此命令时,我们要做的是分配一个秘密密钥,这将询问我们是否要基于时间使用令牌,我们将回答是。

在这之后, 他们会看到一个QR码,可以使用手机上的TOTP应用程序对其进行扫描。

这里 我们建议您在手机上使用Google Authenticator应用程序。il,因此您可以在手机上通过Google Play或Apple App Store安装该应用程序。

手机上已经有该应用程序,您必须使用它扫描QR码。 请记住,您需要扩大终端窗口以扫描整个QR码。

QR码代表密钥,只有SSH服务器和Google Authenticator应用才知道。

扫描QR码后,他们可以在手机上看到唯一的六位数令牌。 默认情况下,此令牌持续30秒,必须输入该令牌才能通过SSH登录Ubuntu。

谷歌身份验证器秘钥

在终端中,您还可以看到密码,验证码和紧急启动码。

我们建议您从中将这些信息保存在安全的地方,以备日后使用。 在询问的其他问题中,我们只需要输入字母y即可回答是。

设置SSH以与Google Authenticator一起使用

已经指望以上内容, 现在,我们将进行必要的配置,以便能够通过Google Authenticator在我们的系统中使用SSH连接。

在终端v我们将输入以下命令

sudo nano /etc/ssh/sshd_config

文件内 我们将寻找以下几行,并将其更改为“是”,如下所示:

UsePAM yes

ChallengeResponseAuthentication yes

进行更改后,保存使用Ctrl + O所做的更改,并使用Ctrl + X关闭文件。

在同一终端中,我们将使用以下命令重新启动SSH:

sudo systemctl restart ssh

默认情况下,身份验证要求他们输入用户密码才能登录。

为了什么 让我们为SSH守护程序编辑PAM规则文件。

sudo nano /etc/pam.d/sshd

在此文件的开头,您可以看到以下行,该行启用了密码身份验证

ChallengeResponseAuthentication

我们必须将其设置为是。

要同时启用一次性密码身份验证,请添加以下两行。

@include common-auth

#One-time password authentication via Google Authenticator

auth required pam_google_authenticator.so

保存并关闭文件。

从现在开始,每次他们通过SSH连接登录到您的系统时,系统都会提示他们输入用户密码和验证码(由Google Authenticator生成的一次性密码)。


发表评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   米格尔

    您好,相当简单的教程,但是,一旦执行了所有我无法再通过ssh输入的步骤,就会抛出一个错误的密码错误,我什至不能要求输入2FA。

    我有Ubuntu Server 20.04