介绍
1 | 简单说,就像我们几年前去银行办卡送的口令牌,以及网易游戏中的将军令,在你使用网银或登陆游戏时会再让你输入动态口令的。 |
1 | 双因素认证:双因素身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起才能发挥作用的身份认证系统。双因素认证是一种采用时间同步技术的系统,采用了基于时间、事件和密钥三变量而产生的一次性密码来代替传统的静态密码。每个动态密码卡都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时动态密码卡与服务器分别根据同样的密钥,同样的随机参数(时间、事件)和同样的算法计算了认证的动态密码,从而确保密码的一致性,从而实现了用户的认证。因每次认证时的随机参数不同,所以每次产生的动态密码也不同。由于每次计算时参数的随机性保证了每次密码的不可预测性,从而在最基本的密码认证这一环节保证了系统的安全性。 |
目的
1 | 实现登录Linux 服务器时,除了输入用户名密码外,需要输入一次性的动态口令才能验证成功。当然也可以实现ssh密钥登陆+动态口令 |
部署
- 安装chrony
1 | 生成动态口令的其中一个因素是时间,需要保持终端设备和服务器的系统时间一致,才能生成同一的动态口令 |
1 | 安装 |
- 安装依赖组件
1 | yum install -y git automake libtool pam-devel |
- 下载Google认证模块
1 | git clone https://github.com/google/google-authenticator-libpam.git |
- 修改sshd支持pam
1 | vim /etc/pam.d/sshd |
- 配置ssh
1 | vim /etc/ssh/sshd_config |
- 生成Google authenticator配置
1 | [root@localhost ~]# google-authenticator |
1 | 注:创建后在家目录下有个隐藏文件为.google-authenticator的文件,记住第一行私钥,手机客户端会用到 |
- 手机安装Google Authenticator客户端
1 | 运行后,添加 --> 手动输入验证码 --> 账户:随意定一个英文名字,最好“见名知意” -->密钥: 复制粘贴$HOME/.google-authenticator隐藏配置文件中的首行密钥 |
- 登陆验证
1 | 注意,第一次登录可能会出现登录失败的情况,查看日志信息显示错误如下: |
1 | [root@controler ~]# ssh 10.0.10.24 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2018/01/22/ssh登陆基于Google-Authenticator实现双因素认证/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!