Парамико SSH питон

Я пытаюсь сделать самый простой способ установить SSH-соединение и выполнить команду с помощью paramiko.

import paramiko, base64
client = paramiko.SSHClient()
client.load_system_host_keys()
client.connect('10.50.0.150', username='XXXXX', password='XXXXXX')
stdin, stdout, stderr = client.exec_command('show performance -type host-io')
for line in stdout:
    print '... ' + line.strip('\n')
client.close()

------------ОШИБКА-----------------------

Traceback (most recent call last):
  File "a.py", line 5, in <module>
    stdin, stdout, stderr = client.exec_command('show performance -type host-io')
  File "/usr/lib/python2.6/site-packages/paramiko-1.10.1-py2.6.egg/paramiko/client.py", line 374, in exec_command
    chan.exec_command(command)
  File "/usr/lib/python2.6/site-packages/paramiko-1.10.1-py2.6.egg/paramiko/channel.py", line 218, in exec_command
    self._wait_for_event()
  File "/usr/lib/python2.6/site-packages/paramiko-1.10.1-py2.6.egg/paramiko/channel.py", line 1122, in _wait_for_event
    raise e
EOFError

Если я выполняю этот код, изменяя команду, которая работает, и на другой компьютер, эта команда отлично работает через интерактивную оболочку SSH.

Есть идеи ?


person POLLOX    schedule 31.07.2013    source источник
comment
Войдите в систему (что вызывает исключение) и выполните команду. Что вы получаете?   -  person falsetru    schedule 31.07.2013
comment
Я получаю ожидаемые результаты, если использую команду linux ssh. Сервер ssh — версия удаленного протокола 1.99, удаленная версия программного обеспечения IPSSH-6.7.0.   -  person POLLOX    schedule 31.07.2013


Ответы (1)


После client.connect(. . .) вам нужно использовать эту команду

session = client.get_transport().open_session()

затем используйте session.exec_command(. . .).

person Community    schedule 23.09.2015
comment
У меня похожая проблема. Команда SSH, которую я запускаю, выполняется долго (несколько минут). В чем причина создания сеанса, как вы показали? - person Chris Nielsen; 07.01.2016