[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