[pyar] Problema para conectarme a Servidor SSH con python

Marcos Dione mdione en grulic.org.ar
Jue Jul 21 16:32:34 ART 2016


On Thu, Jul 21, 2016 at 01:54:18PM -0400, José de Jesus Marquez Rangel wrote:
> 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. 

    y éstas tiene algún parámetro especial?

> 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

    mas o menos qué sería esa configuraci[on distinta? no creo que el
hecho de usar delphi permita mas cosas que con paramiko. estás hablando
siempre del mismo servidor/puerto/user/passwd/etc?

> 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
> Paramiko. Conexión éxitosa.

    Entiendo qu esto es conectándote al 'servidor linux de prueba'. Es
así?

> DEB [20160721-10:13:54.454] thr=1   paramiko.transport: Dropping user
> packet because connection is dead.

    esto ya no suena tan bien...

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

    si es por seguridad es que no deberías poder conectarte?

>    - Paramiko. "paramiko.ssh_exception.SSHException: Channel closed."
> 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!

    cool, acá veo que sí anduvo. y no veo la excepción que mostrás ahí
arriba... sería mejor si pasaras la salida de tu programa completo sin
ninguna edición, así podemos ver los mensajes en orden cronológico, y
eventualmente el stack trace que tira...

> INF [20160721-09:55:40.954] thr=1   paramiko.transport: Disconnect
> (code 2): Service not available: OHAZ;

    no sé qué es OHAZ...

> -------------------------------------------------------------
> PARAMIKO EQUIPO

    acá ya no entiendo, si la prueba anterior es contra el equipo (qué
equipo es, a todo esto?), ésta qué es?

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

      ^^^^^^^^^^^--- el password va acá!

>    - 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)

    no, esto no te va a andar, porque el binario de ssh no lee de la
stdin sino directamente de la tty. cualquier cosa que trate de usar pipes
para la stdin no te va a funcionar.

> *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().

    lo mismo de recién, seguro que pexpect usa pipe. no te veo usando
pxssh.

> Paramiko. "paramiko.ssh_exception.SSHException: Channel closed."
> spur: "paramiko.ssh_exception.SSHException: Channel closed."

    evidentemente spur (que no veo el ejemplo) usa paramiko por debajo,
así que no es raro que palme de la misma forma.

> pexcepet: ImportError: Can't import name "spawn"

    esto no es el error que mencionaste antes. de dónde sale?

    lo mejor que podés hacer es ordenar mejor los ejemplos y pegar toda
la salida de sus ejecuciones, así va a ser mas fácil ayudarte.

-- 
(Not so) Random fortune:
Terrorism isn't a crime against people or property. It's a crime against
our minds, using the death of innocents and destruction of property to
make us fearful.
	    -- Bruce Schneier


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