python 实现 jumpserver 自动登录

现在很多团队都在使用 jumpserver(http://www.jumpserver.org/ )作为跳板机,管理服务器权限,一些对安全要求比较高的团队还会加上 Google authenticator (Google 身份验证器)。

但是安全和方便就是跷跷板的两端,太安全了,就会不方便。

每次登录跳板机还要打开手机输入 Google authenticator 的安全码,有点蛋疼,效率也低。

SecureCRT 可以使用 python 实现自动登录

安装 Google authenticator 的 python 实现


pip install pyotp

自动登录脚本


# $language = "python"

# $interface = "1.0"



# This automatically generated script may need to be

# edited in order to work correctly.

import sys,pyotp

sys.path.insert(0, "/usr/local/lib/python2.7/site-packages") // 这里是pip install pyotp之后,pip 的 packeages 目录,不然会报 import Error

def Main():

 crt.Screen.Synchronous = True

 crt.Screen.WaitForString("Google authenticator:") // 这里输入跳板机提示输入安全码的字符串

 totp = pyotp.TOTP('base32secret3232') // 这里输入你的 Google authenticator 密钥,如果是二维码,就把二维码解析出来,把密钥粘贴进去

 crt.Screen.Send(totp.now())

 crt.Screen.Send("\015")

Main()

启动python,用下面的方法这里可以获取 pip packeages 的安装路径


>>> import sys

>>> print(sys.path)

['', '/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages']

>>>

然后根据把上面定义好的自动登录脚本配置在红框处

login script

验证方式选下面这两种

这个自动登录脚本,可以直达你想去的服务器


# $language = "python"
# $interface = "1.0"
# This automatically generated script may need to be
# edited in order to work correctly.
import sys,pyotp
sys.path.insert(0, "/usr/local/lib/python2.7/site-packages")
def Main():
    crt.Screen.Synchronous = True
    crt.Screen.WaitForString("Google authenticator:") // 这里输入跳板机提示输入安全码的字符串
    totp = pyotp.TOTP('base32secret3232')
    crt.Screen.Send(totp.now())
    crt.Screen.Send("\015")
    crt.Screen.WaitForString("Opt> ")
    crt.Screen.Send("/" + "\015")
    crt.Screen.WaitForString("Opt> ")
    crt.Screen.Send("这里填ip地址" + "\015")
Main()

再强调一下这句话,安全和方便就是跷跷板的两段,自己要做一个权衡

最后,如果是用 ssh 命令登录服务器的,可以使用 expect 脚本实现类似的效果。

更多架构、PHP、GO相关踩坑实践技巧请关注我的公众号:PHP架构师

转载于:https://my.oschina.net/u/222608/blog/2253951

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值