在linux下实现,需要使用paramiko和re模块
过程:
1.用paramiko连接堡垒机
2.构造数据包并发送(包内为用户命令)
3.接收数据包,用正则表达式提取出所需信息
#!/usr/bin/python
# encoding:utf-8
import paramiko
import re
class SecConnect:
def __init__(self):
self.ssh = paramiko.SSHClient()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
bip = '堡垒机的ip地址'
buser = '堡垒机用户名'
bpasswd = '堡垒机密码'
sip = '目标主机ip'
suser = '目标主机用户名'
spasswd = '目标主机密码'
port = 22
passinfo = "\'s password: " # 返回要求输入密码的提示字串
# 连接堡垒机
self.ssh.connect(bip, 22, buser, bpasswd)
self.channel = self.ssh.invoke_shell()
self.channel.settimeout(10)
self.repeat = 0 # 要区分是否为第一次调用命令,第一次与后续调用格式不同
buff = '