[Python-es] Conexion a SSH a multiples maquinas
Manuel Enrique González Ramírez
maengora en gmail.com
Dom Oct 24 00:44:17 CEST 2010
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.
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.
--
Manuel Enrique González Ramírez
http://maengora.blogspot.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20101023/6a878b17/attachment.html>
Más información sobre la lista de distribución Python-es