Google MFA+Jumpserver自动连接登录


 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、创建脚本

在mfa.py路径下创建 自定义文件名脚本,在这里我用sb 表示

vim sb

#!/usr/bin/expect -f
set USER "用户名自己改"
set PASSWORD "密码自己改"
set PORT "端口号我没用,需要的自己加"
#下面python3 以及mfa.py路径自己修改,如果本脚本与mfa.py可以不用修改mfa路径
set MFA [ exec python3 {./mfa.py} ]    

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命令自定义,然后修改绝对路径为上面操作你保存的路径

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登录,非常爽