云网牛站
所在位置:首页 > Linux安全 > 在CentOS、RHEL 8/7上为SSH设置双因素身份验证的方法

在CentOS、RHEL 8/7上为SSH设置双因素身份验证的方法

2019-03-28 21:05:43作者:雷增线稿源:云网牛站

本文介在CentOS/RHEL 8/RHEL 7操作系统上为SSH设置双因素身份验证的方法,我们将使用适用于Android(在Play商店中)和iOS(在iTunes中)的Google身份验证器应用生成身份验证代码。基本条件是:服务器运行CentOS/RHEL 8/RHEL 7、一部运行Android或iOS的手机、Google身份验证器应用、已配置的SSH连接、可以设置双因素身份验证。

 

一、安装EPEL存储库参考文章

你需要安装并运行EPEL存储库,以便可以安装依赖项,请参考在RHEL 8/CentOS 8上安装EPEL存储库(EPEL Repository)的方法一文。

 

二、安装并配置所需的包

我们需要从EPEL存储库安装Google Authenticator PAM模块,首先,确认包是否可用:

$ sudo yum search google-authenticator

Updating Subscription Management repositories.

Updating Subscription Management repositories.

Last metadata expiration check: 0:01:53 ago on Sat 29 Dec 2018 10:09:22 AM EAT.

=================== Name Matched: oogle-authenticator ===================

google-authenticator.x86_64 : One-time pass-code support using open standards

确认后,使用dnf或yum软件包管理器继续使用qrencode安装它:

sudo dnf -y install google-authenticator qrencode

Google Authenticator程序包包含一个可插入的身份验证模块(PAM),允许使用符合开放式身份验证计划(OATH)(与OAuth无关)开发的开放标准的一次性密码登录。

有关已安装软件包的更多详细信息,请运行rpm -qi google-authenticator命令查看:

在CentOS、RHEL 8/7上为SSH设置双因素身份验证的方法

 

三、配置SSH服务器

安装后,你需要使用SSH身份验证器PAM模块,为此,请打开文件/etc/pam.d/sshd并在末尾添加以下行:

$ sudo vi /etc/pam.d/sshd

添加以下行到最后:

auth required pam_google_authenticator.so

然后修改/etc/ssh/sshd_config:

$ sudo vi /etc/ssh/sshd_config

ChallengeResponseAuthentication yes

将ChallengeResponseAuthentication从no更改为yes以启用challenge-response密码。

 

四、配置身份验证

使用Google身份验证器,配置双因素身份验证,需要为每个用户帐户执行此操作才能登录。

在终端中,运行google-authenticator命令:

$ google-authenticator

这会问你一系列问题,这是一个推荐的配置,如下:

Use “time-based” time-based tokens: yes

Update the .google_authenticator file: yes

Disallow multiple uses of the same authentication token: yes

Increase the original generation time limit: no

Enable rate-limiting: yes

如果你无法访问手机,请将获得密钥、验证码和紧急代码写在纸上或记事本上并保证它们的安全:

Your new secret key is: DKM6MJWQVGZHLTWJ4G45XXXXXX

Your verification code is 869XXX

Your emergency scratch codes are:

2746XXXX

2665XXXX

3671XXXX

2271XXXX

8000XXXX

参考:在Linux系统下更改或更新SSH密钥密码的方法

下面安装和配置Google身份验证器。

Google身份验证器应用适用于Android(在Play商店中)和iOS(在iTunes中)以生成身份验证代码,下载并安装它:

在CentOS、RHEL 8/7上为SSH设置双因素身份验证的方法

在CentOS、RHEL 8/7上为SSH设置双因素身份验证的方法

按照提示完成设置,然后选择扫描条形码或输入私钥:

在CentOS、RHEL 8/7上为SSH设置双因素身份验证的方法

在安装过程中扫描屏幕上打印的条形码或添加密钥以添加SSH帐户:

在CentOS、RHEL 8/7上为SSH设置双因素身份验证的方法

应该会看到帐户已添加到Google身份验证器,如下图所示:

在CentOS、RHEL 8/7上为SSH设置双因素身份验证的方法

接下来,测试SSH双因素身份验证。

尝试启动到服务器的新SSH:

$ ssh rhel8 

Password: <Enter SSH Password>

Verification code: <Enter Verificarion code on Google Authenticator>

Activate the web console with: systemctl enable --now cockpit.socket

Last failed login: Sat Dec 29 11:51:46 EAT 2018 from 192.168.122.1 on ssh:notty

Last login: Sat Dec 29 11:48:31 2018

[jmutai@rhel8 ~]$

至此,你的SSH双因素身份验证已在RHEL/CentOS 8操作系统上成功配置。

 

相关主题

在Ubuntu 18.04服务器上设置SSH双因素身份验证的方法

精选文章
热门文章