• 技术文章 >运维 >linux运维

    堡垒机安装google-authenticator

    巴扎黑巴扎黑2017-06-23 14:34:31原创2051
      公司线上的使用机器不能让用户随意的登陆,所以就不能让开发随意的登陆到生产的机器的。于是就打算使用google-auth的验证方式呢。

      如果google-auth的方式。

     搭建google-authenticator:

      搭建这个很简单,如下:

      git clone 下载最新的google auth 最新版。

      cd google-authenticator-libpam/

      ./bootstrap.sh

      ./configure && make && make install

      ln -s /usr/local/lib/security/pam_google_authenticator.so /lib64/security/pam_google_authenticator.so

      修改/etc/pam.d/sshd,

      #最上方加一行 "auth required pam_google_authenticator.so"
      #这个配置可以更复杂一些,加上一些参数,详见 libpam/README
     #注:如果遇到仍然需要输入密码的情况,改成 "auth sufficient pam_google_authenticator.so" 试试。

      修改/etc/ssh/sshd_config

      将 ChallengeResponseAuthentication 选项的 no 改成 yes

      将 UsePAM yes

      service sshd restart

      生成密钥

      $ google-authenticator #注:运行这个命令的是需要登录的用户,不是root用户
      Do you want authentication tokens to be time-based (y/n) y (确认:基于时间的认证token)
      【这里会显示生成二维码的地址、二维码、密钥明文、应急码】
      Do you want me to update your "/var/www/.google_authenticator" file (y/n) y (确认:更新配置文件)
      ......
      size of 1:30min to about 4min. Do you want to do so (y/n) n (token有效期是1.5min,选y就是4min)
      ......
      Do you want to enable rate-limiting (y/n) y (30s内只允许尝试三次)

      在app里扫二维码,或者手动输入密钥,即可看到token每隔30s更新一次了

      尝试登录
      $ ssh localhost
      verification code: 【输入验证码】
      password: 【输入密码】

    补:

    但当时只是简单加上了Google Authenticator,实际使用中既要输入验证又要输入密码,太繁琐了,所以在搭建我司跳板机的时候,选择了用 publickey + authenticator 的方案,只需要输入一次验证码即可。但是这里要求很多。如openssh的版本大于6.2,如果不是的话,就无法使用AuthenticationMethods,最好的方式是使用centos7的版本(已验证过可以使用)centos6.5测试无法使用(应该是我技术不行)。

    具体的配置方案变化不大,主要是用上了 SSH 6.2+ 新增的 AuthenticationMethods 参数,可以指定一系列验证方法,具体配置如下:

    引用
    #默认需要先用publickey验证,再用验证码
    AuthenticationMethods publickey,keyboard-interactive

    #对于指定的IP,只需要publickey验证
    Match Address 10.0.0.4
    AuthenticationMethods publickey

    #也可以指定用户只需要publickey验证
    #Match User XXX
    #AuthenticationMethods publickey



    顺便吐槽一下,Linux这套东西折腾起来真是要命,今天配置跳板机备份机的时候,完全相同的配置,复制一份就是不对,虽然配置里只指定了publickey,keyboard-interactive,但是每次输完验证码以后还是要求输入密码才行,折腾了几个小时才发现,不知道从什么时候开始,"auth required pam_google_authenticator.so" 已经不合适了,需要改成 "auth sufficient pam_google_authenticator.so",这样才会在输入验证码以后就结束认证过程(sufficient的实现里加了一个break?什么鬼。)(感谢 @ )


    最后,提醒一下使用SecureCRT的同学,你需要在Session Options -> Connection -> SSH2,将Authentication中只选用 "Keyboard Interactive" ,否则没法正常登录。

      错误:configure: error: Unable to find the PAM library or the PAM header files

      方法:yum install -y pam-devel

      

    引用:

        

    以上就是堡垒机安装google-authenticator的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:Linux基于pxe+dhcp+nfs+tftp+kickstart的系统网络安装方法 下一篇:软件安装(JDK+MySQL+TOMCAT)
    PHP编程就业班

    相关文章推荐

    • linux中什么是pfn• linux是以什么方式访问设备• Linux高频面试问题:查找大文件并安全清除• linux下什么是gui• linux s类型文件是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网