Форум сайта python.su
0
Здравствуйте, подскажите, пожалуйста. Я только начала изучать Python. Есть задача: написать скрипт для выполнения удаленных команд на оборудовании. Использую модуль paramiko. Проблема в том, что если применяю этот скрипт относительно сервера, то он выводит результат команды, а если относительно оборудования LTE8X - программа зависает.
#!/usr/bin/env python
import paramiko
host = ‘10.10.8.2’
user = ‘root’
secret = ‘123456’
port = 22
paramiko.util.log_to_file('ssh.log')
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, username=user, password=secret, port=port)
stdin, stdout, stderr = client.exec_command('uptime')
for line in stdout:
print(line)
client.close()
Вывод лога:
DEB thr=1 paramiko.transport: starting thread (client mode): 0x901956cL
INF thr=1 paramiko.transport: Connected (version 2.0, client OpenSSH_5.5)
DEB thr=1 paramiko.transport: kex algos: server key: client encrypt: server encrypt: client mac: server mac: client compress: server compress: client lang: server lang: kex follows?False
DEB thr=1 paramiko.transport: Ciphers agreed: local=aes128-ctr, remote=aes128-ctr
DEB thr=1 paramiko.transport: using kex diffie-hellman-group1-sha1; server key type ssh-rsa; cipher: local aes128-ctr, remote aes128-ctr; mac: local hmac-sha1, remote hmac-sha1; compression: local none, remote none
DEB thr=1 paramiko.transport: Switch to new keys …
DEB thr=2 paramiko.transport: Adding ssh-rsa host key for 10.10.8.2: d0278d9063d7825a81bd22104c97c828
DEB thr=1 paramiko.transport: userauth is OK
INF thr=1 paramiko.transport: Authentication (password) successful!
DEB thr=2 paramiko.transport: Max packet in: 34816 bytes
DEB thr=1 paramiko.transport: Max packet out: 32768 bytes
INF thr=1 paramiko.transport: Secsh channel 1 opened.
DEB thr=1 paramiko.transport: Sesch channel 1 request ok
Вывод на экран:
~$ ./blacklist1.py
Welcome to LTE-8X on Sat Jan 1 00:46:18 LOCAL 2000
При выполнении команды вручную:
$ ssh root@10.10.8.2
Password:
**************************************
* Welcome to LTE-8X *
**************************************
Welcome to LTE-8X on Sat Jan 1 00:48:29 LOCAL 2000
LTE-8# uptime
up 48 min
Подскажите, в чем может быть проблема?
Офлайн
15
У меня была подобная фигня из-за forced command на ssh сервере, убираешь её из конфига и всё ок. Вот я здесь пробовал спросить http://stackoverflow.com/questions/22501852/paramiko-does-not-work-when-forced-command-is-on
Такая хрень у меня была не только в paramiko и но в модуле twisted-а. Как пофиксить - без понятия.
Отредактировано plusplus (Апрель 15, 2014 13:13:52)
Офлайн
20
LTE8X Удаленное управление web-интерфейс(http, https), CLI (ssh2),
telnet. Так что можно и по https
Ну и наружу вы не выходите можно и по telnet, если политика безопасности позволяет, это я к тому что если с ssh не получается, а сроки жмут
Офлайн
0
noob_saibotПо вебу не получится, т к там лишь малая часть того, что нужно (не аналог CLI). Ну а по поводу cli как вариант рассматриваем.
LTE8X Удаленное управление web-интерфейс(http, https), CLI (ssh2),telnet. Так что можно и по https Ну и наружу вы не выходите можно и по telnet, если политика безопасности позволяет, это я к тому что если с ssh не получается, а сроки жмут
Офлайн
49
Была такая же хрень с d-link/3com/procurve, решил так:
http://pexpect.readthedocs.org/en/latest/
или вариация на тему
http://pexpect.readthedocs.org/en/latest/api/pxssh.html
Отредактировано Alen (Апрель 15, 2014 21:04:29)
Офлайн
0
Alen
Была такая же хрень с d-link/3com/procurve, решил так:http://pexpect.readthedocs.org/en/latest/или вариация на темуhttp://pexpect.readthedocs.org/en/latest/api/pxssh.html
Офлайн