1. google 动态验证

https://wiki.archlinux.org/index.php/Google_Authenticator (E文)

双因素身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起才能发挥作用的身份认证系统。双因素认证是一种采用时间同步技术的系统,采用了基于时间、事件和密钥三变量而产生的一次性密码来代替传统的静态密码。每个动态密码卡都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时动态密码卡与服务器分别根据同样的密钥,同样的随机参数(时间、事件)和同样的算法计算了认证的动态密码,从而确保密码的一致性,从而实现了用户的认证。

2. 背景:

对linux服务器开启动态验证,当然是更加安全啦,并且只有经过你授权的人才能获取到动态验证码;

3. 安装: 开搞啦

code URL: https://github.com/google/google-authenticator-libpam

3.0 安装必须rpm包:

 

3.1 下载google authenticator libpam

下载方法一:

 

下载方法二:

 

3.2 安装google-authenticator-libpam

 

3.3 生成google动态秘钥

 

上述共需回答5个y
第1个:问你是否想做一个基于时间的令牌
第2个:是否更新你的google认证文件,由于第一次设置,所以一定选y
第3个:是否禁止口令多用,这里选择y,禁止它,以防止中间人欺骗。
第4个:默认情况,1个口令的有效期是30s,这里是为了防止主机时间和口令客户端时间不一致,设置的误差,可以选择y,也可选n,看要求严谨程度
第5个:是否打开尝试次数限制,默认情况,30s内不得超过3次登陆测试,防止别人暴力破解。

并且上面这些设置将被存储在用户的〜/.google_authenticator文件中,emergency scratch codes 中的5个代码是紧急代码,务必牢记,这是在你的动态口令无法使用的情况下使用的,记住,用一个失效一个。后期可以登陆上去后,重新生成!!

如果你的网络可以打开google的话, 请直接复制上面给出的链接,直接粘贴到浏览器地址栏中,进行生成二维码,此时打开手机上的Google Authenticator应用扫描二维码即可自动添加;
如果你的网络无法正常打开google的话, 请复制上面给出的秘钥"Your new secret key is: GDHUNZ5**********4ROYNE",打开手机上的google Authenticator应用添加,选择"输入提供的秘钥",将秘钥贴进去便可添加完成;

3.4 配置系统验证方式:

在/etc/pam.d/sshd 文件的开头处增加一行内容:

auth required pam_google_authenticator.so
更改sshd的配置文件 "/etc/ssh/sshd_config"中:
ChallengeResponseAuthentication no
改为:
ChallengeResponseAuthentication yes

重新reload sshd
注意: 操作此步时一定要保证至少有一个终端连接着,切执行完reload也不要断开,便于解决一些问题
service sshd restart

3.5 验证:

新开一个终端窗口进行验证;

4. 延伸:

如果内网服务器之间连接也让输入动态验证码, 有些时候会存在一些烦恼,解决办法当然是有的啦, 如下:
更改"/etc/pam.d/sshd":

 

完美解决啦.