[Python-es] Conexion a SSH a multiples maquinas

Rarok rarokillo en gmail.com
Dom Oct 24 01:21:52 CEST 2010


Nunca he trabajado con conexiones ssh en python y tengo el python muy flojo,
pero me parece que para hacer varias conexiones a la vez tendrías que
ejecutar varios hilos/procesos o como se llamen para mantener varias
conexiones ssh a la vez.

El 24 de octubre de 2010 01:17, Alberto Curro <bertothunder en gmail.com>escribió:

> 2010/10/24 Manuel Enrique González Ramírez <maengora en gmail.com>
>
> Hola a tod en s.
>>
>> Quisiera saber si me pueden colaborar con lo siguiente:
>>
>> Debo conectarme a una máquina mediante ssh (ya eso está listo) y teniendo
>> la session activa de esta máquina conectarme a otra.  Me logro conectar a la
>> primera máquina pero al modificar el código para que se conecte a la
>> siguiente no ocurre nada pero el sistema tampoco me arroja error; podría ser
>> problema de comunicación/red o debo corregir algo en el código.
>>
>
> No estoy puesto en la parte de conexiones SSH desde python, pero juraría
> que eso no funcionará.
>
> A riesgo de meter la pata, diría que una vez tienes el flujo (la conexión)
> establecido con la máquina 1, no puedes conectar a la máquina dos desde la
> máquina 1 usando tu aplicación original (con su conexión). Puedes ejecutar
> comandos (como un ssh), pero no establecer conexiones dependientes. No sé si
> me explico.
>
> Lo dicho, puedo estar completamente equivocado, pero me parece que el error
> está en el concepto. Espero que alguien te pueda echar una mano más
> técnica...
>
> Saludos
>
>
>>
>> Mi otra consulta es:  conocen otra librería como la de paramiko pero que
>> funcione con Python 2.7??
>>
>>
>> #!/usr/bin/env python
>> # -*- coding: iso-8859-1 -*-
>>
>> # Importo las librerías
>> import paramiko
>> import os
>>
>> # Datos para la conexión
>> ssh_servidor = 'maquiina1'
>> ssh_usuario  = 'usuario'
>> ssh_clave    = '123456'
>> ssh_puerto   = 22
>> comando      = 'ls'
>>
>> ssh_servidor2 = 'maquina2'
>> ssh_usuario2  = 'usuario2'
>> ssh_clave2    = '56789'
>> ssh_puerto2   = 22
>> comando2      = 'ls /opt/archivos/'
>>
>> # Conectamos con el servidor
>> conecta =  paramiko.Transport((ssh_servidor,ssh_puerto))
>> conecta.connect(username=ssh_usuario, password = ssh_clave)
>>
>> # Abrimos una sesión en el servidor
>> canal = conecta.open_session()
>>
>> # Ejecuto el comando de prueba
>> # Debe mostrar los archivos
>> canal.exec_command(comando)
>>
>> # Salida
>> salida = canal.makefile('rb',-1).readlines()
>> if salida:
>>    print 'Conectado a MAQUINA 1'
>>    print 'Intentando conectar a MAQUINA 2'
>>    conecta2 =  paramiko.Transport((ssh_servidor2,ssh_puerto2))
>>    conecta2.connect(username=ssh_usuario2, password = ssh_clave2)
>>    canal2 = conecta2.open_session()
>>    canal2.exec_command(comando2)
>>    salida2 = canal.makefile('rb',-1).readlines()
>>    if salida2:
>>       for i in salida2:
>>           print i[:-1]
>>    else:
>>       print canal2.makefile_stderr('rb',-1).readlines()
>> else:
>>    # Mostramos el error
>>    print canal.makefile_stderr('rb',-1).readlines()
>> conecta2.close()
>> conecta.close()
>>
>>
>> De antemano, gracias por la colaboración
>>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20101024/867c8b7e/attachment.html>


Más información sobre la lista de distribución Python-es