mac下实现快速登陆带有两步验证的ssh跳板机
我们有个堡垒机当前的登陆流程是: ssh username@ip -p port –> 输入密码 –> 打开手机 –> 查看两部验证码 –> 输入 –> 连接成功
解决输入密码的问题
mac因为安全问题使用brew已经无法安装sshpass这个包了, 我们可以使用ssh key来进行免密登陆并提高安全性。不同的跳板机平台设置方式不太一样,基本都是在个人信息设置里面增加。
解决输入两步验证码的问题
两步验证码就是TOTP,基于生成的6位数字, 30s更换一次, 我们需要先拿到TOTP的seed, 一般都会给一个二维码,用二维码解析工具解析, 解析出来的内容大致类似于:
1 | otpauth://totp/Microsoft:iuxt@outlook.com?secret=XUHHW5TKKTYGMJYM&issuer=Microsoft |
secret= 后面的内容就是TOTP的seed
使用脚本来生成两步验证码
可以使用python的pyotp包
1 | import pyotp |
写入剪切板
1 | python3 ~/code/tools/totp.py XUHHW5TKKTYGMJYM | pbcopy |
然后登陆的时候直接粘贴就可以了。
最终效果
~/.zshrc 里面的内容:
1 | alias gac_pub='python3 ~/code/tools/totp.py XUHHW5TKKTYGMJYM | pbcopy && ssh xxx@x.x.x.x -p 60022' |
需要连接跳板机的时候, 直接执行gac_pub, 然后粘贴即可。 虽然没有完全自动化, 但是也不用低头打开手机查看验证码了。
iterm2 带有action, 可以根据屏幕显示来执行命令, 理论上可以自动填充TOTP,暂时没有时间测试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BLOG!