专栏首页二狗的DBA之路Linux 利用Google Authenticator实现ssh登录双因素认证

Linux 利用Google Authenticator实现ssh登录双因素认证

原文地址 https://www.cnblogs.com/tiannan/p/6238832.html

1.介绍

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

说白了,就像我们几年前去银行办卡送的口令牌,以及网易游戏中的将军令,在你使用网银或登陆游戏时会再让你输入动态口令的。

2.目的

实现登录Linux 服务器时,除了输入用户名密码外,需要输入一次性的动态口令才能验证成功。

3.安装过程

3.1安装chrony

生成动态口令的其中一个因素是时间,需要保持终端设备和服务器的系统时间一致,才能生成同一的动态口令

简单说下chrony:chrony 是网络时间协议的(NTP)的另一种实现,与网络时间协议后台程序(ntpd)不同,它可以更快地更准确地同步系统始终。

国内比较好用的ntp服务器:官网

注,同步时间时请准确设置系统时区

[root@localhost ~]# yum install -y chrony
[root@localhost ~]# vim /etc/chrony.conf

server 0.cn.pool.ntp.org iburst

[root@localhost ~]# systemctl restart chronyd
[root@localhost ~]# chronyc sources210 Number of sources = 4MS Name/IP address Stratum Poll Reach LastRx Last sample===============================================================================
^? 223.112.179.133 0 6 0 10y +0ns[ +0ns] +/- 0ns^* dns1.synet.edu.cn 2 6 33 0 +113us[ +284us] +/- 28ms^? 2001:da8:202:10::61 0 6 0 10y +0ns[ +0ns] +/- 0ns^? 42.96.167.209 2 6 10 8 +2011us[ +949us] +/- 127ms

[root@localhost ~]# date2016年 12月 31日 星期六 09:30:24 CST

3.2安装依赖组件

[root@localhost ~]# yum install -y git automake libtool pam-devel

3.3下载谷歌认证模块

[root@localhost ~]# git clone https:~-xr-x  root root  12月  : google-authenticator-~]# cd google-authenticator-libpam/-authenticator-libpam]# ./bootstrap.-authenticator-libpam]# ./-authenticator-libpam]#  &&  -authenticator-libpam]# google--authenticator-libpam]# cd ~~]# vim /etc/pam.d/~]# vim /etc//~~]# google--based (y/
   ? (y/? This restricts you to one --the-middle attacks (y/ possible -. This allows  skew of up to  permitted codes (the  next codes). This will permit  a  skew of up to  so? (y/ attempts, you can enable rate-limiting  than  -limiting? (y/n) y

3.4 手机安装身份验证器

app下载地址:http://www.coolapk.com/apk/com.google.android.apps.authenticator2

4.登录验证

注意,第一次登录可能会出现登录失败的情况,查看日志信息显示错误如下:

[root@localhost ~]# tail -n10 /var/log/secure

...
Dec 31 09:42:46 localhost sshd[2393]: PAM unable to dlopen(/usr/lib64/security/pam_google_authenticator.so): /usr/lib64/security/pam_google_authenticator.so: cannot open shared object file: No such file or directory
Dec 31 09:42:46 localhost sshd[2393]: PAM adding faulty module: /usr/lib64/security/pam_google_authenticator.so
...

[root@localhost ~]# ln -sv /usr/local/lib/security/pam_google_authenticator.so /usr/lib64/security/pam_google_authenticator.so"/usr/lib64/security/pam_google_authenticator.so" -> "/usr/local/lib/security/pam_google_authenticator.so"

开始再次登录

iterm2下面,登录。先要输入ssh密码,然后还需要输入一个生成器的随机密码。2个密码都正确才能登录到服务器。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 成为DBA的10条规则

    原文地址 https://datatechnologytoday.wordpress.com/2018/10/02/10-rules-for-succeedin...

    二狗不要跑
  • Linux环境下的 pyenv的安装

    curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv...

    二狗不要跑
  • 使用replicate-rewrite-db 实现复制映射 + Replicate_Wild_Do_Table实现复制过滤

    业务方有个需求,需要将node1上的employees库的departments 、dept_manager 这2张表同步到 node2 的 hellodb 库...

    二狗不要跑
  • JVM故障分析及性能优化实战(VI)——JVM Heap Dump(堆转储文件)的生成和MAT的使用

    正如Thread Dump文件记录了当时JVM中线程运行的情况一样,Heap Dump记录了JVM中堆内存运行的情况。 可以通过以下几种方式生成Heap Dum...

    IT技术小咖
  • 移动端开发H5页面点击按钮后出现闪烁或黑色背景的解决办法

    H5页面在IOS端测试的时候发现,点击按钮会闪动,出现一个黑色的背景一闪而过,影响用户体验。最后通过度娘,找到解决方法: 就是给点击的元素添加一个CSS属性或者...

    ProsperLee
  • 浅谈@Autowired注解shiyong

    因为Student 的两个bean id分别为student和student02,恰好我们的变量名也叫student和student02,故不会报错。假如变量名...

    编程大道
  • Linux下ActiveMQ无法启动

    昨夜西风凋碧树 独上高楼望尽天涯路。 ? timg.jpg 邻近上线,居然才安装ActiveMQ,测试环境是在win环境下安装的,线上环境是Linux。 然而问...

    小柒2012
  • 法律禁止默认密码 “admin”,“无意入侵”没那么容易了

    据 techcrunch 报导,前几日,加州通过了一项法律,2020 年之后禁止在所有新的消费电子产品中使用 “admin”、“123456” 和经典的 “pa...

    周俊辉
  • Spring AOP环绕异常影响的报错

    网上去stackoverflow搜,也是搜到这个问题:https://stackoverflow.com/search?q=java.lang.ClassCas...

    SmileNicky
  • 为什么微软正在成为一家「开源」公司?

    微软正在成为一家开源公司。 拥有自己的BSD Unix操作系统,以支持乌班图作为Windows 10的子系统。以及最近开放源代码的Xamarin软件开发工具包。...

    人称T客

扫码关注云+社区

领取腾讯云代金券