[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