Python: Conectar a un servidor SSH
Y seguimos con la racha de artÃculos sobre Python (sÃ, me estoy quitando esa espina clavada). Esta vez vamos a ver un ejemplo de cómo enviar comandos a un servidor mediante SSH.
La magia esta vez se consigue gracias a la librerÃa Paramiko. Para instalarla en Ubuntu:
sudo apt-get install python-paramiko
En este ejemplo no hay apenas control de errores, que serÃa importante añadirlo (eso queda como deberes para el lector
).
#!/usr/bin/env python # LibrerÃas necesarias import paramiko import os # Datos para la conexión SSH ssh_servidor = 'midominio.com' ssh_usuario = 'usuario' ssh_clave = 'clave' ssh_puerto = 22 # O el puerto SSH que use nuestro servidor comando = 'ls' # el comando que vamos a ejecutar en el servidor # Conectamos al servidor conexion = paramiko.Transport((ssh_servidor, ssh_puerto)) conexion.connect(username = ssh_usuario, password = ssh_clave) # Abrimos una sesión en el servidor canal = conexion.open_session() # Ejecutamos el comando, en este caso un sencillo 'ls' para ver # el listado de archivos y directorios canal.exec_command(comando) # Y vamos a ver la salida salida = canal.makefile('rb', -1).readlines() if salida: # Si ha ido todo bien mostramos el listado de directorios print salida else: # Si se ha producido algún error lo mostramos print canal.makefile_stderr('rb', -1).readlines() conexion.close()

