Pexpect未与防火墙提示同步

时间:2017-09-25 11:26:25

标签: python expect firewall pexpect pxssh

我正在尝试使用Pexpect模块从防火墙获取数据(更具体地说,pxssh)。登录过程很好,问题正好出现在" i"作业行:

if i==2: # password or passphrase
            self.sendline(password)
            # Up to here, everything is okay#
            i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT])

当用户登录时,这是防火墙的对话框:

  

密码:

     

上次登录时间:2017年9月25日星期一06:20:50来自IPXXXX

     

自上次成功登录以来失败的尝试次数:0

     

管理员@ DEVICE(活性)GT;

我认为问题在于Pexpect不会期望这两行上次登录和尝试失败次数,因此代码执行会在我之前说过的行中停止。

有人可以帮助我吗?

---- ---- UPDATE

防火墙使用的Shell:

admin@DEVICE(active)>

我的pexpect类的初始化代码:

def __init__(self, host, user, password):
    str = 'ssh '+user+'@'+host
    self.user = user
    self.child = pexpect.spawn ('ssh '+user+'@'+host)
    self.child.expect ('Password:.*')
    self.child.sendline (password)
    self.child.expect (user+'.*>')
    ...

事先感谢,

麦克

0 个答案:

没有答案