Google MFA+Jumpserver自动连接 - https://www.cnblogs.com/iAmSoScArEd/p/16387057.html 我超怕的
1、先安装except
Linux CentOS:yum install except
Linux Ubuntu:apt install except
Mac:brew install except
2、新建mfa.py,修改倒数第三行secret
import hmac, base64, struct, hashlib, time def get_hotp_token(secret, intervals_no): key = base64.b32decode(secret, True) msg = struct.pack(">Q", intervals_no) h = hmac.new(key, msg, hashlib.sha1).digest() # 加上chr字符串 o = ord(chr(h[19])) & 15 h = (struct.unpack(">I", h[o:o+4])[0] & 0x7fffffff) % 1000000 return h def get_totp_token(secret, bias): return get_hotp_token(secret, intervals_no=int(time.time()+bias)//30) def get_google_code(secret): googlecode = get_totp_token(secret, 3) return '%06d' % googlecode if __name__ == '__main__': secret = ""# google MFA secret get_google_code(secret) print(get_google_code(secret))
3、创建脚本
创建 自定义文件名脚本,在这里我用sb 表示vim sb
#!/usr/bin/expect -f set USER "用户名自己改" set PASSWORD "密码自己改" set PORT "端口号我没用,需要的自己加" #下面python3 以及mfa.py的绝对路径自己修改 set MFA [ exec python3 {/xxx/xxx/mfa.py} ]
# 这里需要修改xxx.xxx.com为你们jumpserver的地址 spawn -noecho ssh $USER@xxx.xxx.com expect "*password:" send "$PASSWORD\n" # 如果你们堡垒机不是MFA 替换一下关键词 expect "*MFA*" send "$MFA\n" interact
4、添加可运行权限
chmod +x sb
5、测试
用./sb 测试能否成功?能的话往下,不能的话解决报错问题
6、修改快捷命令
如果不想设置快捷命令,就每次 ./sb 运行也可以
sb命令自定义,然后修改绝对路径为上面操作你保存的路径
如果想要在任意路径下随时输入sb都能启动,看下面的配置
1、设置alias
MAC : vim ~/.zshrc
Linux : vim ~/.bashrc
添加 alias sb="/xxx/xxx/sb"
2、当前终端生效alias
MAC: source ~/.zshrc
Linux: source ~/.bashrc
3、每次启动终端都能读取alias设置
vim ~/.bash_profile
MAC添加 source ~/.zshrc
Linux添加 source ~/.bashrc
7、结束
任意工作路径下都可以使用sb登录,非常爽