|
Google MFA+Jumpserver自动连接 - 1、先安装exceptLinux CentOS:yum install except Linux Ubuntu:apt install except Mac:brew install except
; d) v* s& ] u. J2、新建mfa.py,修改倒数第三行secretimport hmac, base64, struct, hashlib, timedef 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 hdef 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' % googlecodeif __name__ == '__main__': secret = ""# google MFA secret get_google_code(secret) print(get_google_code(secret))
! ?7 v' ]) U/ B/ h$ _3、创建脚本创建 自定义文件名脚本,在这里我用sb 表示vim sb #!/usr/bin/expect -fset USER "用户名自己改"set PASSWORD "密码自己改"set PORT "端口号我没用,需要的自己加"#下面python3 以及mfa.py的绝对路径自己修改set MFA [ exec python3 {/xxx/xxx/mfa.py} ]
/ V+ J- n3 ]/ P. m5 O% R9 r# 这里需要修改xxx.xxx.com为你们jumpserver的地址spawn -noecho ssh $USER@xxx.xxx.comexpect "*password:"send "$PASSWORD\n"# 如果你们堡垒机不是MFA 替换一下关键词expect "*MFA*"send "$MFA\n"interact" Q) N1 ^' I. p5 ^* @9 v
7 a3 U" S' J2 O2 _9 b& M( S; w3 i
4、添加可运行权限chmod +x sb 5、测试用./sb 测试能否成功?能的话往下,不能的话解决报错问题 6、修改快捷命令如果不想设置快捷命令,就每次 ./sb 运行也可以 sb命令自定义,然后修改绝对路径为上面操作你保存的路径 9 R8 S+ n* j& L+ J5 E0 d6 G
如果想要在任意路径下随时输入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 * z2 u/ M/ u7 n) H
; `0 b4 y1 C8 C9 a) g1 Y
7、结束0 N) A( Z3 d, m0 n# @
2 X# U( S8 K" C
|