Как сохранить срок действия сеанса SSH с помощью Paramiko?Python

Программы на Python
Ответить
Anonymous
 Как сохранить срок действия сеанса SSH с помощью Paramiko?

Сообщение Anonymous »

Я собираюсь выполнить несколько команд на удаленном хосте с помощью Paramiko, но сеанс ssh закрылся после выполнения команды.

Код указан ниже:

Код: Выделить всё

from paramiko import SSHClient
import paramiko
ssh = SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, 22, user, passwd, timeout=3)
stdin, stdout, stderr = ssh.exec_command('uname -a')
Итак, есть ли способ предотвратить закрытие сеанса ssh? Или есть альтернативы парамико?

Обновление:

Мне удалось продолжать вызывать exec_command на моем Macbook при подключении к Сервер Linux, но сеанс ssh автоматически закрылся после exec_command один раз на сервере Linux при подключении к коммутатору и вызвал

Код: Выделить всё

SSHException: paramiko.ssh_exception.SSHException: SSH session not active

Код: Выделить всё

>>> print ssh.get_transport()
>>>
>>> print ssh.get_transport().is_active()
>>> False
>>> print ssh.get_transport().is_authenticated()
>>> False
Есть ли способ поддерживать активный сеанс Paramiko ssh постоянно?

Информация о режиме отладки paramiko возвращается следующим образом:


запуск потока (клиент режим): 0x2657e10L

Подключено (версия 1.99, клиент Comware-5.20)

kex алгоритмы:[u'diffie-hellman-group-exchange-sha1', u'diffie-hellman-group14-sha1', u'diffie-hellman-group1-sha1'] ключ сервера:[u'ssh-rsa'] клиент зашифровать: [u'aes128-cbc', u'3des-cbc', u'des-cbc'] сервер зашифровать: [u'aes128-cbc', u'3des-cbc', u'des-cbc'] клиент mac: [u'hmac-sha1', u'hmac-sha1-96', u'hmac-md5' , u'hmac-md5-96'] сервер mac:[u'hmac-sha1', u'hmac-sha1-96', u'hmac-md5', u'hmac-md5-96'] сжатие клиента:[u'none'] сжатие сервера:[u'none'] язык клиента:[u''] язык сервера:[u''] следует kex?False

Шифры согласованы: local=aes128-cbc, Remote=aes128-cbc

с использованием kex диффи-хеллман-группа14-sha1; тип ключа сервера ssh-rsa; шифр: локальный aes128-cbc, удаленный aes128-cbc; mac: локальный hmac-sha1, удаленный hmac-sha1; сжатие: локальное нет, удаленное нет

Переключиться на новые ключи ...

аутентификация пользователя в порядке

Аутентификация (пароль) прошла успешно!

[chan 0] Максимальный входящий пакет: 32768 байт

[chan 1] Максимальный входящий пакет: 32768 байт

[chan 0] Максимальный исходящий пакет: 32496 байт

Открыт канал Secsh 0.

Открыт канал Secsh 2. ОШИБКА:

Нехватка ресурсов: Нехватка ресурсов

[chan 0] Sesch запрос канала 0 ок

[chan 0] EOF отправлен (0)


Подробнее здесь: https://stackoverflow.com/questions/364 ... g-paramiko
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»