Google MFA+Jumpserver自动连接登录
Google MFA+Jumpserver自动连接 - https://www.cnblogs.com/iAmSoScArEd/p/16387057.html 我超怕的
1、先安装expect
Linux CentOS:yum install expect
Linux Ubuntu:apt install expect
Mac:brew install expect
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 "替换端口号,默认22或2222"
set ADDRESS "替换堡垒机地址" #需要修改上一步,mfa.py的绝对路径 set MFA [ exec python3 {/xxx/xxx/mfa.py} ]
spawn -noecho ssh $USER@$ADDRESS -p $PORT expect "*password:" send "$PASSWORD\n" # 如果你们堡垒机不是MFA 替换一下关键词 expect "*MFA*" send "$MFA\n" interact
4、添加可运行权限
chmod +x sb
5、测试
用./sb 测试能否成功?能的话往下,不能的话解决报错问题
6、修改快捷命令
如果不想设置快捷命令,就每次 ./sb 运行也可以
sb命令自定义,然后执行时修改绝对路径为上面sb文件的路径,如:使用pwd,sb在/User/xxx/ 则每次使用 ./User/xxx/sb 运行
如果想要在任意路径下随时输入sb都能启动,看下面的配置
方法一(推荐)
若MAC使用的不是zsh,可以在下面的路径替换为vim ~/.bash_profile (不存在可使用touch ~/.bash_profile新建后编辑)
添加PATH环境变量
1、新建一个专门存放自定义脚本命令的文件夹如:selfDefine,后续自定义的都可以放这个里面,而且不需要二次配置,可以直接访问
2、将sb脚本放到selfDefine
3、 配置环境变量
MAC: vim ~/.zshrc
Linux: vim ~/.bashrc
添加(记得修改路径为自己的存放路径)以下内容
export PATH="$PATH:这里改成你自己创建的路径/selfDefine"
4、保存后直接生效,或者可以选择关闭终端后重新打开
MAC: source ~/.zshrc
Linux: source ~/.bashrc
方法二
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登录,非常爽