配置Linux的SSH双重认证
背景:双因子认证(简称:2FA,以下简称2FA),在这里其为SSH的第二重认证。2FA指的是密码以及实物(信用卡、SMS手机、令牌或指纹等生物标志)两种条件对用户进行认证的方法。通过两种不同的认证程序,可以降低密码泄露带来的风险,大大提高了linux系统的安全!
一、配置前准备
1、 准备一台运行着的OpenSSH服务的linux终端。
2、 安卓手机一台。
二、linux上安装Google身份验证器
1、 ubuntu上安装Google身份认证器:
$ sudo apt-get install libpam-google-authenticator -y
2、 CentOS上安装Google身份认证器
#安装EPEL软件库 $ sudo yum install epel-release -y #安装google-authenticator $ sudo yum install -y google-authenticator
3、 linux主机上运行Google身份验证器
$ google-authenticator
Google身份验证器会问一些问题,一直答 Y即可。图中的应急备用验证码(图中显示为: emergency scratch codes)可以在你丢失了绑定的安卓设备的情况下恢复访问。所以,一定要将应急备用验证码保存好!
三、为SSH服务器用Google身份验证器
1、 修改PAM配置文件
$ sudo vim /etc/pam.d/sshd # Disallow non-root logins when /etc/nologin exists. account required pam_nologin.so # 添加这一行 auth required pam_google_authenticator.so
2、 在SSH配置文件里启用 ChallengeResponseAuthentication
$ sudo vim /etc/ssh/sshd_config ChallengeResponseAuthentication yes
3、 重启SSH服务
$ sudo service ssh restart
四、在安卓设备上运行Google身份验证器
1、 在安卓应用市场搜索并安装Google身份验证器。
2、 在配置菜单输入刚刚的配置信息
3、 添加完成后会得到6位数动态码
到此,双因子认证配置完成!