堡垒机安装google-authenticator
发布时间 - 2017-06-23 00:00:00 点击率:次公司线上的使用机器不能让用户随意的登陆,所以就不能让开发随意的登陆到生产的机器的。于是就打算使用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 参数,可以指定一系列验证方法,具体配置如下:
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
引用:
# 验证码
# 输入密码
# 只需要
# 能让
# 里加
# 的是
# 最好的
# 上了
# 就不
# 会在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
利用python获取某年中每个月的第一天和最后一天
如何用虚拟主机快速搭建网站?详细步骤解析
网站制作价目表怎么做,珍爱网婚介费用多少?
如何在IIS管理器中快速创建并配置网站?
Laravel怎么上传文件_Laravel图片上传及存储配置
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
bing浏览器学术搜索入口_bing学术文献检索地址
Laravel怎么实现验证码(Captcha)功能
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
详解阿里云nginx服务器多站点的配置
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
JavaScript实现Fly Bird小游戏
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
英语简历制作免费网站推荐,如何将简历翻译成英文?
油猴 教程,油猴搜脚本为什么会网页无法显示?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
敲碗10年!Mac系列传将迎来「触控与联网」双革新
,交易猫的商品怎么发布到网站上去?
如何在自有机房高效搭建专业网站?
Laravel中的Facade(门面)到底是什么原理
如何在IIS中新建站点并配置端口与IP地址?
LinuxCD持续部署教程_自动发布与回滚机制
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
javascript基本数据类型及类型检测常用方法小结
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
Mybatis 中的insertOrUpdate操作
如何为不同团队 ID 动态生成多个“认领值班”按钮
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何用狗爹虚拟主机快速搭建网站?
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
Python数据仓库与ETL构建实战_Airflow调度流程详解
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Laravel如何处理文件下载请求?(Response示例)
桂林网站制作公司有哪些,桂林马拉松怎么报名?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Thinkphp 中 distinct 的用法解析
在线制作视频网站免费,都有哪些好的动漫网站?
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
如何用AI帮你把自己的生活经历写成一个有趣的故事?
如何在景安服务器上快速搭建个人网站?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法

