自动连接jumpserver

自动连接jumperver

一,开启google mfa验证码

  1.谷歌mfa验证码

#!/usr/bin/python env
# -*- coding: utf-8 -*-
# Author:cc
# date: 2020/6/10

import hmac, base64, struct, hashlib, time
import platform
import sys

jumpserver = sys.argv[1]


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) # CHJ_WARN 这个参数是试出来的
     return '%06d' % googlecode

if __name__ == '__main__':
    # get_google_code("T7APKBLX63CDJQRD")
    # print(get_google_code())
    if jumpserver == "xxx":
        secret = "xxx" # 这里是谷歌双因子认证:Google Authenticator 的 Secret
    elif jumpserver == "xxx":
        secret = "xxx"
    elif jumpserver == "xxx":
        secret = "xxx"
    else:
        print("输入跳板机不存在")
        sys.exit(0)
    get_google_code(secret)
    print(get_google_code(secret))

  2.连接jumpserver脚本

#!/usr/bin/expect
##此脚本用来自动登录jumpserver

set timeout 10

set USER "panbiao"
set PORT "2222"
set HOST [lindex $argv 0]
set MFA [ exec python3.7 {/Users/panbiao/pem/mfa.py} $HOST ]

spawn ssh -i /Users/panbiao/pem/panbiao-$HOST.pem -p $PORT $USER@$HOST.xxx.com
expect {
"*yes/no*" { send "yes\n"; exp_continue }
"**auth*" { send "$MFA\n" }
}
#expect "**auth" {send "$MFA\n" }
interact

  3.直接使用 ./ssh_jumpserver.sh + 要连的跳板机就好

 

二,未开启google mfa验证码,直接使用密钥登录

#!/bin/bash
function ssh_jumpserver(){
ssh -i $pem -p 2222 panbiao@$host -o StrictHostKeyChecking=no
}

while true
do 
	cat <<-EOF
	1.环境1
	2.环境2
	3.环境3
	EOF
read -p "input number:" num

case $num in
  1)
    pem="/Users/panbiao/pem/xxx.pem"
    host="xxx.com"
    ssh_jumpserver
  ;;
  2)
    pem="/Users/panbiao/pem/xxx.pem"
    host="xxx.com"
    ssh_jumpserver
  ;;
  3)
    pem="/Users/panbiao/pem/xxx.pem"
    host="xxx.com"
    ssh_jumpserver
  ;;
  *)
    exit 
  ;;
esac
done

  

posted @ 2020-06-11 11:01  jcici  阅读(765)  评论(0编辑  收藏  举报