Pexpect не синхронизируется с брандмауэром

Я пытаюсь получить данные из брандмауэра с помощью модуля 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])

Это диалоговое окно брандмауэра, когда пользователь вошел в систему:

Пароль:

Последний вход в систему: Пн Сен 25 06:20:50 2017 от IPXXXX

Количество неудачных попыток с момента последнего успешного входа: 0

админ @DEVICE(активный)>

Я думаю, что проблема в том, что Pexpect не ожидает этих двух строк Last Login и Number of неудачных попыток, поэтому выполнение кода останавливается в строке, которую я сказал ранее.

Может ли кто-нибудь помочь мне?

----ОБНОВИТЬ----

Оболочка, которую использует брандмауэр:

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 ответов

Другие вопросы по тегам