先讲下背景:

公司电脑需要先登录堡垒机,然后再从堡垒机跳转到具体生产机器,每次输入堡垒机都要通过Authenticator里的2FC的码做验证,然后再跳到堡垒机还要再输入一次账号密码,为了方便快速登录机器,可以制作个脚本实现一键登录,全程只需做两个操作(1、按F1查找全部机器,2、输入对应数字选择机器,然后脚本会自动登录堡垒机,自动输入2FC,自动跳转到对应的ip生产机器并填充账号密码!)

1、安装oath-toolkit , 可以实现动态提取 MFA 码

没有brew组件的可以参考Mac安装brew的四种方法(指定能行)_mac brew-CSDN博客

brew install oath-toolkit

2、下载Google Authenticator的SECKEY的提取工具

下载git开源项目,也可以直接把下面附件解压到自己目录

cd ~
git clone https://github.com/scito/extract_otp_secret_keys.git --depth=1 

extract_otp_secret_keys-master.zip

3、安装python提取工具所需环境及组件

本机没有安装python和pip命令的先去安装(参考我之前的文章:创作中心-CSDN)

Mac默认安装python2.7版本,建议安装python3和pip3,我安装的是python3.10.5

cd extract_otp_secret_keys
python -m venv venv
. venv/bin/activatepip install -r requirements-buildenv.txt
pip install -r requirements.txt

4、【重点】 提取 MFA secret key

打开Authenticator APP应用,点击导出账号

微信扫描该二维码活动链接内容

新建a.txt并将该一串文本拷贝到a.txt文件内,执行python解析脚本获取Secret

python3.10 extract_otp_secret_keys.py -p a.txt

快速拷贝验证码小技巧

vim ~/.bash_profile

# xxxxx替换为上面截图的值
alias smCode="echo `oathtool --totp -b xxxxx `| pbcopy"

更新配置文件

source ~/.bash_profile

执行执行smCode命令便可把验证码拷贝到剪切板,后面直接ctrl+v便可复制

5、将上一步得到的Secret带入expect脚本内,执行自动登录

编辑exp脚本:vim loginJms.exp

#!/usr/bin/expect
# 设置应用的登录密码,xxxxxxxx替换为自己的机器
set password "xxxxxxxx"
# xxxxx替换为自己堡垒机账号
spawn ssh -p 2222 xxxxx@jms.leshuatrade.com
# xxxxx替换为自己堡垒机密码
expect "*password*" {send "xxxxx\r"}
expect "*Code]:*" {
# 执行oathtool命令,根据第4步拿到的Secret生成MFA密码,xxxxxxxxxxx替换为第4步的Secret值
set code [exec oathtool --totp -b xxxxxxxxxxx]
send "$code\r"}
# ip替换为你要登录的密码
expect "*Opt>*" {send "10.91.31.116\r"}
expect "*D*" {send "2\r"}
expect "*username:*" {send "webapp\r"}
expect "*password:*" {send "$password\r"}
exec sleep 1# expect脚本执行完成,继续停留在目标服务器内操作
interact

完成后可以通过expect loginJms.exp直接执行,也可以通过shell脚本触发

6、写个shell脚本,方便快速执行expect文件

vim login.sh

#!/bin/bashclear
RED='\033[0;31m'
GRN='\033[0;32m'
BLU='\033[0;34m'
NC='\033[0m'
# 获取执行login.exp路径
pwdpath=$(cd "$(dirname "$0")";pwd)
# ssh登录脚本指令, 注意这里要跟脚本命名要一致
sshJms="expect $pwdpath/loginJms.exp"
# menu.sh# 服务器提示目录,可以根据自己需求修改
echo "--------------------------------------"
echo "选择你要登录的服务器"
echo -e "${GRN}===========测试环境===============${NC}"
echo "【1】127.0.0.1"
echo -e "(1) ${GRN}===========预发布环境===============${NC}"
echo "【11】127.0.0.1"
echo -e "(1) ${RED}===========线上环境===============${NC}"
echo "【21】127.0.0.1"
echo "--------------------------------------"
read -p "请选择服务器:" inputcase ${input} in1)echo -e "${RED}登录服务器:127.0.0.1"# 执行expect脚本$sshJms# 命令执行结束;;2)# echo -e "${RED}登录服务器:"# $ssh-webappsleep 1;;3)exit;;
esac

7、设置shell脚本执行快捷键

vim ~/.bash_profile
# 添加jms为快捷登录命令
alias jms='sh ~/sshlogin/sshlogin.sh'

也可以设置F1快速执行shell脚本(本人就这样设置的),进到终端偏好设置,设置F1为执行shell脚本命令

可以了,已全部完成,后面想登录堡垒机只需要按F1便能快速执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86616.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86616.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/86616.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C/C++】C++26新特性前瞻:全面解析未来编程

展望未来:C26 新特性全面解析 随着 C 标准每三年一次的迭代节奏,C26(预计于 2026 年底正式发布)正在逐步成型。相比 C20 的革命性更新和 C23 的“修补增强”,C26 继续推进现代 C 的理念——更安全、更高效、更模块化&…

ArXiv 2101 | Rethinking Interactive Image Segmentation Feature Space Annotation

Rethinking Interactive Image Segmentation Feature Space Annotation Author: lartpangLink: https://github.com/lartpang/blog/issues/10论文:https://arxiv.org/abs/2101.04378代码:https://github.com/LIDS-UNICAMP/rethinking-interactive-image…

架构经验总结

20250511-总结经验 一、SOA 1)过程:需求分析、系统设计、系统实现、构件组装、部署运维、后开发阶段。 2)特点:无状态、单一职责、明确定义接口、自包含、模块化、粗粒度、重用性、兼容性、互操作性、松耦合、策略声明。 3&…

debain切换 opensuse 我都安装了什么

绿色进度条后,黑屏(只有一个下划线)等待 使用 nomodeset 属性解决 进入系统无法连接 wifi,只能使用网线连接 wifi 这个我在安装中文字体后,注销登录,得到了解决,不确定是不是字体问题。&#x…

思科ISE/ISE-PIC安全警报:两处高危RCE漏洞(CVSS 10.0)可致未授权获取root权限

思科已发布更新,修复身份服务引擎(Identity Services Engine,ISE)及ISE被动身份连接器(ISE-PIC)中两处最高危安全漏洞,这些漏洞可能允许未经认证的攻击者以root用户身份执行任意命令。 漏洞详情…

智能助手(利用GPT搭建智能系统)

项目介绍 本项目旨在打造一个基于通义千问模型的智能助手,能够理解用户指令并自动生成可执行的 JavaScript 代码。该代码可直接调用预设接口,完成指定操作,并返回执行结果。通过大模型的理解与生成能力,实现从自然语言到接口调用…

【源码+文档+调试讲解】基于web的运动健康小程序的设计与实现y196

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱,出错率高,信息安全…

临床项目计划框架

一、项目概述 1.1 项目名称 项目名称:评估XX药物在YY患者中安全性和有效性的III期随机对照试验 1.2 项目背景与立项依据 1.2.1 研究背景 简述疾病负担、当前治疗现状、未满足的医疗需求,为项目开展提供背景支持。 1.2.2 科学依据 总结前期研究结果、理论基础、研究假设的形…

Hoare逻辑与分离逻辑:从程序验证到内存推理的演进

文章目录 引言一、Hoare逻辑基础:程序正确性的形式化验证🌰 例子:简单赋值语句的Hoare逻辑验证🌰 例子:条件语句的Hoare逻辑验证 二、分离逻辑:Hoare逻辑在内存管理中的扩展🔍 分离逻辑的核心扩…

Tomcat Maven 插件

在 Maven 项目中,可以使用 Tomcat Maven 插件(tomcat7-maven-plugin 或 tomcat-maven-plugin)来直接部署 WAR 文件到 Tomcat 服务器,而无需手动复制 WAR 文件到 webapps 目录。以下是详细的使用方法: 1. 配置 Tomcat M…

【开源工具】一键解决使用代理后无法访问浏览器网页问题 - 基于PyQt5的智能代理开关工具开发全攻略

🌐【开源工具】一键解决使用代理后无法访问浏览器网页问题 - 基于PyQt5的智能代理开关工具开发全攻略 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代…

异步IO框架io_uring实现TCP服务器

一、io_uring介绍 io_uring是 Linux 于 2019 年加入到内核的一种新型异步 I/O 模型,io_uring 主要为了解决 原生AIO(Native AIO) 存在的一些不足之处。下面介绍一下原生 AIO 的不足之处: 系统调用开销大:提交 I/O 操作…

【docker】docker run参数说明

功能 拉起容器。 参数 -i,--interactive 保持容器标准输入放开,就算没有终端也放开。 可以理解为可以向容器内输入东西,比如: [rootlocalhost ~]# echo 111 | docker run -i yaxin:1.0 cat 111--cap-add 用于向容器添加特定的…

从0开始学习计算机视觉--Day04--损失函数

在上次学习中,我们知道了线性分类的函数是f(x,W),但并没有解释要怎么得到W权重矩阵的值,以及我们要怎么用训练数据来确定它的最优权重矩阵。在之前我们知道,假设用了10种类别的图片用于训练,将其中一种图片输入模型后,…

【V2.0】TPS-61088升压板-3.7V升压到9V电源板

优化一下上一版本的升压板: TPS-61088升压板-3.7V升压到9V电源板-CSDN博客 改动参考了官方的demo板 加了很多的电容,封装很大,同时去掉了AGND,直接使用一个GND。 补偿电路增加了一个47pF的电容。 EN引脚改用输入的电压分压来启…

基于DeepSeek搭建Dify智能助手国产化架构运行arm64

基于DeepSeek搭建Dify智能助手国产化架构运行arm64 基于DeepSeek搭建Dify智能助手案例介绍案例内容1 概述1.1 背景介绍1.2 适用对象1.3 案例时间1.4 案例流程1.5 资源总览 2.启动 Docker 容器没有的安装2.1没有Docker安装 3 云主机部署DeepSeek3.1 安装Ollama 4.安装Dify4.1Doc…

PyQtNode Editor 第一篇环境配置

PyQtNode Editor 以其独特的功能和灵活的扩展性,吸引了众多开发者的目光。 这篇博客作为系列开篇,将详细介绍开发 PyQtNode Editor 所需的基础环境、安装步骤,同时深入解读一段简单的 PyQt5 代码,为后续的开发工作奠定基础。 一…

Unity 脚本自动添加头部注释

📝 Unity Script Header 注释生成器 一个轻量、可配置的 Unity 编辑器工具,在创建 .cs 脚本时自动插入统一格式的注释头信息。 支持作者、邮箱、公司、地点、版权、描述等字段,所有信息都可通过 Project Settings 界面配置并动态开关。 &…

偏微分方程能量变化分析2

题目 问题 9. 考虑以下带有边界条件的偏微分方程(PDE): u t t − c 2 u x x 0 , x > 0 , u_{tt} - c^2 u_{xx} 0, \quad x > 0, utt​−c2uxx​0,x>0, u ∣ x 0 0. u|_{x0} 0. u∣x0​0. 定义能量泛函: E ( t ) …

模型部署和推理架构学习笔记

一. 初步认识模型部署 1. 什么是ONNX? ONNX 就是一个 中间人 或 通用翻译器。它让你在喜欢的框架(如 PyTorch)里训练好模型后,能轻松地把它变成一种 标准格式。然后,这个标准格式的模型可以被 很多不同的工具和硬件 …