SSH usando Python
-
Utilice la biblioteca
paramiko
en Python para crear conexiones SSH y ejecutar comandos -
Utilice el módulo
subprocess
para crear conexiones SSH y ejecutar comandos
SSH (siglas de Secure Socket Shell
) es un protocolo de red muy utilizado para servicios de comunicación seguros y cifrados en una red desconocida e insegura. Nos permite enviar comandos entre dos dispositivos a través de dicha red de forma remota y tiene muchas aplicaciones.
Python tiene módulos disponibles que permiten dicha ejecución SSH. Este tutorial discutirá cómo ejecutar comandos de shell en un dispositivo remoto después de asegurar la conexión SSH.
Utilice la biblioteca paramiko
en Python para crear conexiones SSH y ejecutar comandos
El módulo paramiko
se utiliza con frecuencia para implementar protocolos SSH en Python. Permite la comunicación tanto del lado del servidor como del cliente.
Verifique el código a continuación para ejecutar comandos de shell en un dispositivo remoto usando este módulo.
ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute)
La función SSHClient()
especifica una sesión de servidor SSH. Nos conectamos al dispositivo utilizando los datos de autenticación adecuados en la función connect
. Los comandos requeridos se pueden ejecutar en este dispositivo usando la función exec_command()
.
Otro módulo llamado spur
se deriva de este módulo, pero tiene una interfaz ligeramente mejor.
Utilice el módulo subprocess
para crear conexiones SSH y ejecutar comandos
La función check_output()
del módulo subprocess
se puede utilizar para ejecutar los comandos que se le pasan, y la función devuelve la salida de este comando. Podemos crear conexiones SSH sin contraseña con esta función para ejecutar los comandos requeridos.
El siguiente código muestra un ejemplo de esto.
subprocess.check_output(["ssh", "my_server", "echo /*/"])
Otro método que se puede utilizar desde este módulo es el Popen()
. Es similar a la función os.Popen()
del módulo os
para ejecutar comandos y programas externos. En este módulo, el Popen
es una clase y no un método. Es un poco complicado usar esto debido a varios parámetros que deben especificarse junto con el comando requerido. Combina las 4 funciones os.Popen()
en una. También ejecuta el comando como un proceso separado. Podemos usarlo para crear conexiones SSH y ejecutar comandos, como se muestra a continuación.
subprocess.Popen(
"ssh {user}@{host} {cmd}".format(user=user, host=host, cmd="ls -l"),
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
).communicate()
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn