[pyar] Problema para conectarme a Servidor SSH con python

José de Jesus Marquez Rangel ing.jdj en gmail.com
Jue Jul 21 14:54:18 ART 2016


Saludos.

La presente tiene la finalidad de solicitar el apoyo para la orientación
con conexiones ssh desde windows.

Actualmente me encuentro conectandome a servidor que esta en la misma red,
la conexión es éxitosa cuando me conecto con aplicaciones como: ssh, putty,
etc. Consulte con un compañero y el logro conectarse con una librería en
*Delphi*, ya que los equipos tiene una configuración distinta a la que
podemos encontrar en servidores linux

*.*
Realizado pruebas tanto al equipo que se quiere conectar como al servidor
linux de prueba. Utilizando las distintas librerias que te ofrece python
obtuve los siguientes resultados:


*Debian(Linux):*
--------------------------------------------------------------
PARAMIKO LINUX

from paramiko import SSHClient, AutoAddPolicy, util,Transport
import traceback

log_filename='log.log'

ssh = SSHClient()
util.log_to_file(log_filename)
ssh.set_missing_host_key_policy(AutoAddPolicy())

#MssBTO01
try:

    ssh.connect('XX.XX.XX.X', username='XXXXX',
    password='',port=22)

    (stdin, stdout, stderr) = ssh.exec_command("ls -l;")


except Exception as e:
    print(traceback.print_exc())
    print(e)
finally:
    ssh.close()

-------------------------------------------------------------


Paramiko. Conexión éxitosa.

Log generado:

DEB [20160721-10:13:54.392] thr=1   paramiko.transport: userauth is OK
INF [20160721-10:13:54.430] thr=1   paramiko.transport: Authentication
(password) successful!
DEB [20160721-10:13:54.431] thr=2   paramiko.transport: [chan 0] Max
packet in: 32768 bytes
DEB [20160721-10:13:54.450] thr=1   paramiko.transport: [chan 0] Max
packet out: 32768 bytes
DEB [20160721-10:13:54.450] thr=1   paramiko.transport: Secsh channel 0 opened.
DEB [20160721-10:13:54.451] thr=1   paramiko.transport: [chan 0] Sesch
channel 0 request ok
DEB [20160721-10:13:54.453] thr=1   paramiko.transport: [chan 0] EOF
received (0)
DEB [20160721-10:13:54.454] thr=1   paramiko.transport: [chan 0] EOF sent (0)
DEB [20160721-10:13:54.454] thr=1   paramiko.transport: Dropping user
packet because connection is dead.





*Equipo(Por medidas de seguridad desconozco el equipo y la
configuraciones).*

   - Paramiko. "paramiko.ssh_exception.SSHException: Channel closed."

Log generado.
DEB [20160721-09:55:40.913] thr=1   paramiko.transport: userauth is OK
INF [20160721-09:55:40.927] thr=1   paramiko.transport: Authentication
(password) successful!
DEB [20160721-09:55:40.927] thr=2   paramiko.transport: [chan 0] Max
packet in: 32768 bytes
DEB [20160721-09:55:40.941] thr=1   paramiko.transport: [chan 0] Max
packet out: 32768 bytes
DEB [20160721-09:55:40.941] thr=1   paramiko.transport: Secsh channel 0 opened.
INF [20160721-09:55:40.954] thr=1   paramiko.transport: Disconnect
(code 2): Service not available: OHAZ;

-------------------------------------------------------------
PARAMIKO EQUIPO

from paramiko import SSHClient, AutoAddPolicy, util,Transport
import traceback

log_filename='log.log'

ssh = SSHClient()
util.log_to_file(log_filename)
ssh.set_missing_host_key_policy(AutoAddPolicy())

#MssBTO01
try:

    ssh.connect('XX.XX.XX.X', username='XXXXX',
    password='',port=22)

    (stdin, stdout, stderr) = ssh.exec_command("ls -l;")


except Exception as e:
    print(traceback.print_exc())
    print(e)
finally:
    ssh.close()

----------------------------------------------------------





   - subprocess: Conexion éxitosa, pero no se como colocar el password

Log generado:
Permission denied, please try again.
Permission denied, please try again.
Permission denied (password).
-------------------------------------------------

import subprocess

con = subprocess.Popen(['ssh','user en host'],stdout=subprocess.PIPE,
stdin=subprocess.PIPE)
for line in con.stdout.readlines():
    print(line)

-----------------------------------------------------------------------------



*Descargando Cygwin*
Para utilizar la libreria pexpect y pxssh.

Me genera el siguiente error

pexpect.TIMEOUT: Timeout exceeded in read_nonblocking().
--------------------------------------------------------------------------------------------------------
 child = pexpect.spawn("ssh user en host",timeout=120)
>>> child.logfile = open('some.log','a+')
>>> child.expect('user en host\'s password:')
>>> child.sendline("password")
>>> child.expect('command')
>>> child.sendline("<")
pexpect.TIMEOUT: Timeout exceeded in read_nonblocking().
---------------------------------------------------------------

Ya realice la sugericia de agregar más tiempo y no funciono a la
read_nonblocking().


Plataforma

*Cliente*
Windows 7 64bit
Python3.4
Libreria usandas:
Paramiko. "paramiko.ssh_exception.SSHException: Channel closed."
spur: "paramiko.ssh_exception.SSHException: Channel closed."
pexcepet: ImportError: Can't import name "spawn"


Agradecería todo el apoyo que me pueda prestar.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160721/00ede272/attachment-0001.html>


Más información sobre la lista de distribución pyar