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

    创建 自定义文件名脚本,在这里我用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登录,非常爽

  • 相关阅读:
    docker
    iOS开发之抓取花瓣网json数据
    iOS与Android工程项目的简单对比
    Android与iOS的比较
    Jenkins时间和centos时间相差八小时解决方法
    MYSQL中索引里面的基数是什么意思
    使用Java写一个minio的客户端上传下载文件
    Java 使用AOP实现打印日志
    macOS使用brew安装mysql8.x
    MacOS安装homebrew报错:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
  • 原文地址:https://www.cnblogs.com/iAmSoScArEd/p/16387057.html
Copyright © 2020-2023  润新知