|
Google MFA+Jumpserver自动连接 - 1、先安装exceptLinux CentOS:yum install except Linux Ubuntu:apt install except Mac:brew install except
9 q0 }$ g- ?/ g$ G2 k2、新建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))8 @/ @" u( b3 X2 b' B& F
3、创建脚本创建 自定义文件名脚本,在这里我用sb 表示vim sb #!/usr/bin/expect -fset USER "用户名自己改"set PASSWORD "密码自己改"set PORT "端口号我没用,需要的自己加"#下面python3 以及mfa.py的绝对路径自己修改set MFA [ exec python3 {/xxx/xxx/mfa.py} ] 6 k& K7 s9 t9 P3 |) p
# 这里需要修改xxx.xxx.com为你们jumpserver的地址spawn -noecho ssh $USER@xxx.xxx.comexpect "*password:"send "$PASSWORD\n"# 如果你们堡垒机不是MFA 替换一下关键词expect "*MFA*"send "$MFA\n"interact
. P- }/ `1 f/ V: Q( e0 M) Q) q& k$ F: Z* ]" |
4、添加可运行权限chmod +x sb 5、测试用./sb 测试能否成功?能的话往下,不能的话解决报错问题 6、修改快捷命令如果不想设置快捷命令,就每次 ./sb 运行也可以 sb命令自定义,然后修改绝对路径为上面操作你保存的路径 , P0 A) w0 P8 s* I8 f
如果想要在任意路径下随时输入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 / W) M+ P; o8 f5 i, B
4 U9 L4 a L& U: x3 B% C7、结束
# c' a$ x9 X: q( y. ^% n
$ o! I, V5 C& J |