博客 / 詳情

返回

MAC快速登錄MFA驗證的跳板機

記實現MAC快速上MFA驗證的跳板機

相關工具

iTerm2, oath-toolkit, extract_otp_secrets, JumpServer

實現過程

一. 讀取驗證碼需要seckey,本人使用工具extract_otp_secrets讀取JumpServer或者Authenticator的MFA認證二維碼圖片進行獲取。
源碼地址:https://github.com/scito/extract_otp_secrets#installation-of-python-script-recommended-for-developers-or-advanced-users

git clone https://github.com/scito/extract_otp_secrets.git

如果下載緩慢的話,可以使用代理

git clone https://ghproxy.com/https://github.com/scito/extract_otp_secrets.git

然後進入項目並啓動venv

cd extract_otp_secret_keys
python -m venv venv
./venv/bin/activate

如果執行activate的時候出現 permission denied: ./venv/bin/activate 的權限問題,那就直接

chmod 777 ./venv/bin/activate

二. 接着提取二維碼的Secret,qr_code.jpg為二維碼的路徑

python src/extract_otp_secrets.py qr_code.jpg

得到結果(關鍵信息本人以test和諧)

Name:    test_name
Secret:  TEST_SECRET
Issuer:  JumpServer
Type:    totp

三. Secret有了,接着就是需要一個根據Secret獲取動態驗證碼的工具,oath-toolkit,本人使用homebrew安裝,安裝完成後試試獲取驗證碼

brew install oath-toolkit
oathtool --totp -b TEST_SECRET

如果直接打印驗證碼,那麼就説明獲取成功,到這一步就接近完成了,接下來我們只需要寫一個腳本實現ssh連接和輸入驗證碼的操作,再在配置文件加一個自定義別名以執行腳本就大功告成了,腳本保存位置和名字因人而異

vim ~/drump.sh

把以下內容寫進去並保存

!/usr/bin/expect

spawn ssh 用户名@ip -p 端口號
expect "*auth*" {
            set code [exec oathtool --totp -b TEST_SECRET]
            send "$code\r"}
interact

四. 最後在配置文件加一個自定義別名用來代替執行腳本的命令,本人習慣改zshrc,可根據自身實際修改在bash或者zsh等等,然後讓新加的別名生效

echo 'alias drump="~/drump.sh"' >> ~/.zshrc
source ~/.zshrc

從此之後,當我們想上跳板機的時候,再也不用掏出手機找驗證碼,直接在iTerm2或者自己習慣用的終端輸入

drump

就可以秒上跳板機

參考鏈接

https://www.jianshu.com/p/6d9ceb3bb508

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.