自動登錄腳本神器-Mac電腦實現自動登錄堡壘機并自動輸入賬號密碼跳轉不同機器環境

先講下背景:

公司電腦需要先登錄堡壘機,然后再從堡壘機跳轉到具體生產機器,每次輸入堡壘機都要通過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)里訓練好模型后,能輕松地把它變成一種 標準格式。然后,這個標準格式的模型可以被 很多不同的工具和硬件 …