Python SSH Paramiko EOFError

У меня есть простой скрипт для подключения через SSH на маршрутизаторе Nokia и выполнения команды "показать время":

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('adres ip', port=22, username='username', password='password')
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command('show time')
output = stdout.readlines()
print '\n'.join(output)
ssh.close()

Вход в узел успешно. Я вижу себя на маршрутизаторе, но выполнение команды не сработает. Я получаю ошибку, как это:

Traceback (most recent call last):   File "C:\Users\pkudalsk\Desktop\pyt.py", line 6, in <module>
    ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command('show time')   File "C:\Users\pkudalsk\Desktop\paramiko\client.py", line 479, in exec_command

    chan.exec_command(command)   File "C:\Users\pkudalsk\Desktop\paramiko\channel.py", line 63, in _check
    return func(self, *args, **kwds)   File "C:\Users\pkudalsk\Desktop\paramiko\channel.py", line 241, in exec_comman d
    self._wait_for_event()   File "C:\Users\pkudalsk\Desktop\paramiko\channel.py", line 1198, in
_wait_for_ event
    raise e EOFError

Кто-нибудь знает, что может вызвать эту проблему? Я пробовал на python 3.6 и 2.7. Результат тот же.

Спасибо

1 ответ

Есть 2 решения:

1.- Поместите эту командуprint('\n'.join(output))2.- Если ваша проблема не устранена, не используйте paramiko, используйте netmiko. У меня была такая же проблема с роутерами nokia, и я перешел на netmiko. Вот один пример

      from netmiko import ConnectHandler

device = {
    'device_type': 'nokia_sros',
    #'device_type': 'alcatel_sros',
    'ip': 'ip_add',
    'username': 'user',
    'password': 'password',
    'port': 22,
    'verbose': True
}

with ConnectHandler(**device) as net_connect:
    output = net_connect.send_command('show chassis detail')
    print(output)```
   
Другие вопросы по тегам