公司堡垒机采用密码+身份认证器双重验证登录,每次登录都需要找手机或者浏览器上的谷歌身份验证器插件看动态码,特别不方便,折腾半天实现了mac上自动登录功能,记录一下。

需求描述:

  • 实现免密登录
  • 实现身份认证动态口令获取
  • 实现自动填充动态口令登录
  • 实现终端任意位置命令登录

免密登录

堡垒机登录需要配合本地秘钥文件(pem文件)使用,采用ssh-add即可实现免密登录:

ssh-add -k username.pem

身份验证器动态码获取

验证器采用TOTP(基于具有时间戳的OTP)算法实现,此处采用jboss的依赖实现动态口令计算:

<dependencies><dependency><groupId>org.jboss.aerogear</groupId><artifactId>aerogear-otp-java</artifactId><version>1.0.0</version></dependency>
</dependencies>
public static void main(String[] args) {String token = System.getProperty("token");System.out.println(new Totp(token).now());
}

将上面代码打包成jar包,即可在终端运行计算动态口令:

java -jar -Dtoken=TWNXADBDZHCCAYAE totp.jar

自动填充自动登录

采用mac自带expect命令实现终端交互,expect脚本:

#!/bin/bash
user=$1
token=$2
code="$(java -jar -Dtoken=$token ~/ssha/totp.jar)"
expect -c "
spawn ssh -p6088 ${user}@jumper.XXX.com
expect {\"failed.\" {exit}\"*ID>:*\" {send \"1.163\n\";exp_continue}\"*口令:*\" {send \"${code}\r\";exp_continue}\"*10-163-1-163*\" {send \"sudo su -\r\"}
}
interact
"

配置全局命令

vim ~/.bash_profile
# username、TOKEN替换为你的真实数据
alias ssha='zsh ~/ssha/bl.exp username TOKEN'
# 保存退出,并刷新配置
source ~/.bash_profile

将对应的bl.exp和totp.jar文件放到`~/ssha`目录下即可,现在可以在终端任意位置执行ssha即可免密自动登录堡垒机了。效果:

代码参考:https://gitee.com/Gunning/totp.git

Mac堡垒机密码加身份验证器动态口令全自动登录(带全局登录命令)相关推荐

  1. php通过谷歌身份验证实现动态口令

    Google Authenticator,是谷歌推出的一款动态口令工具,解决大家的google账户遭到恶意攻击的问题:许多安全性比较高的网站都会采用这种工具来验证登录或者交易:这个动态口令就是Goog ...

  2. 关于Google身份验证器、基于时间的一次性密码 (TOTP)算法的初步了解

    一.Google Authenticator 1.概述 Google Authenticator是基于双因素身份验证 ( 2FA ) 的应用程序,有助于识别用户身份并确认用户声称自己是谁以及他是否真的 ...

  3. 使用google身份验证器实现动态口令验证

    最近有用户反应我们现有的短信+邮件验证,不安全及短信条数限制和邮件收验证码比较慢的问题,希望我们 也能做一个类似银行动态口令的验证方式.经过对可行性的分析及慎重考虑,可以实现一个这样的功能. 怎么实现 ...

  4. Java使用google身份验证器实现动态口令验证

    google身份认证器服务端key的生成和它生成的随机密码的验证: 客户端和服务器事先协商好一个密钥K,用于一次性密码的生成过程,此密钥不被任何第三方所知道.此外,客户端和服务器各有一个计数器C,并且 ...

  5. 如何为SSH登录建立双因子验证机制(谷歌身份验证器)?

    前言 默认情况下,SSH已经在远程机器之间使用安全的数据通信;但是如果你想为自己的SSH连接添加另外某种安全层,可以添加谷歌身份验证器(Google Authenticator)双因子验证模块,该模块 ...

  6. 天融信堡垒机怎么结合国密OTP动态令牌实现双因子身份认证?

    摘要: 结合宁盾国密OTP动态令牌为天融信堡垒机登录开启双因子身份认证机制,能有效增强运维人员的账号安全,满足等保合规要求. 天融信运维安全审计系统(简称"堡垒机")是面向政府.企 ...

  7. 【SpringBoot】61、SpringBoot中使用谷歌身份验证器(Google Authenticator)实现二步身份验证

    Google 身份验证器 Google Authenticator 是谷歌推出的基于时间的一次性密码 (Time-based One-time Password,简称 TOTP),只需要在手机上安装该 ...

  8. 使用谷歌身份验证器增强SSH安全

    一般大家都是使用账号和密码远程SSH登录管理服务器.但SSH账号和密码很容易泄露,或者经常遭遇暴力破解.咨询过前同事赛赛,他们目前使用了谷歌身份验证器.查看了谷歌身份验证器的github和其它网上文档 ...

  9. 两步验证杀手锏:Java 接入 Google 身份验证器实战

    转载自   两步验证杀手锏:Java 接入 Google 身份验证器实战 什么是两步验证? 大家应该对两步验证都熟悉吧?如苹果有自带的两步验证策略,防止用户账号密码被盗而锁定手机进行敲诈,这种例子屡见 ...

最新文章

  1. 三维场景图:用于统一语义、三维空间和相机的结构
  2. SSM框架——Spring+SpringMVC+Mybatis的搭建教程
  3. 如何防止apk程序被反编译
  4. #地形剖面图_高中地理——每日讲1题(地形剖面图、河流水的补给、河流丁坝)...
  5. JavaScript数组结构与算法——数组详解(中)
  6. YBTOJ:矛盾指数(网络流-最大权闭合图)
  7. 11、jeecg 笔记之 界面常用整理 - 方便复制粘贴
  8. datagridview选中获取行号_DataGridView控件显示行号的正确代码及分析
  9. SVG SMIL animation动画详解
  10. Css3新特性应用之形状
  11. python with as有什么好处?
  12. 数据结构——C语言实现链表
  13. 魔兽争霸无法在这个计算机,魔兽争霸提示内存不足 无法执行此操作 然后自动退出游戏了 怎么处理?我内存8G 硬盘1T WIN7 32位系统...
  14. 五步教你如何利用python爬虫制作一个中国慕课视频下载器
  15. 我的2020java社招岗面经,阿里巴巴社招面试经历(Java工程师方向)
  16. 有一种风险让期权交易员如坐针毡——谨慎管理 “大头针风险”
  17. ES集群可视化管理工具-Cerebro
  18. 单品销量破百万+,登顶天猫类目第一!摇滚动物园的爆品打造攻略你学会了吗?
  19. #5 最长回文子串(中等)
  20. java Lambda表达式详解

热门文章

  1. 淘晶驰串口屏入门(七)数据记录控件、文件浏览器控件、文件流控件
  2. 齐边错边装置液压系统比例阀放大器
  3. 计算机组成原理学习笔记(第二部分 I/O设备和运算)
  4. Python3自动化打包项目发布到pypi
  5. 现在转行做程序员的多吗?
  6. Python实现Excel根据指定区域截图(Windows版本)
  7. 构建幼儿Steam教育实施策略
  8. 如何将word中汉字分割为单个并插入数据库?
  9. [原创]K8正方系统密码解密工具
  10. android安装linux软件安装,Android for Linux 开发工具安装说明