[pyar] Problema para conectarme a Servidor SSH con python
José de Jesus Marquez Rangel
ing.jdj en gmail.com
Jue Jul 21 16:54:02 ART 2016
Voy a comentar paramiko, no existen ningún parametro en especial
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:
v
ssh.connect('XX.XX.XX.X', username='XXXXX',
password='',port=22)
command = 'ZAHO;'
(stdin, stdout, stderr) = ssh.exec_command("ZAHO;")
except Exception as e:
print(traceback.print_exc())
print(e)
finally:
ssh.close()
C:\Users\e09668\Aplicativo1\Scripts\python.exe
C:/Users/e09668/PycharmProjects/Aplicativo1/conexion.py
Traceback (most recent call last):
File "C:/Users/e09668/PycharmProjects/Aplicativo1/conexion.py", line 17,
in <module>
(stdin, stdout, stderr) = ssh.exec_command("ZAHO;")
File "c:\python34\lib\site-packages\paramiko\client.py", line 424, in
exec_command
chan.exec_command(command)
File "c:\python34\lib\site-packages\paramiko\channel.py", line 60, in
_check
return func(self, *args, **kwds)
File "c:\python34\lib\site-packages\paramiko\channel.py", line 234, in
exec_command
self._wait_for_event()
File "c:\python34\lib\site-packages\paramiko\channel.py", line 1103, in
_wait_for_event
raise e
paramiko.ssh_exception.SSHException: Channel closed.
None
Channel closed.
prompt del servidor que me estoy conectado.
MAIN LEVEL COMMAND <___>
<
El 21 de julio de 2016, 15:32, Marcos Dione <mdione en grulic.org.ar> escribió:
> 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
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160721/85970bd8/attachment.html>
Más información sobre la lista de distribución pyar