En Python, las funciones se escribirían en el siguiente orden:
La función ssh_command(ip, user, passwd, command) se conecta a un servidor
SSH remoto y emite un comando utilizando la biblioteca paramiko. El comando a
ejecutar, el nombre de usuario, la contraseña y la dirección IP del servidor remoto
son sus cuatro parámetros requeridos. La función establece una conexión SSH,
envía el comando y recibe el resultado del comando. En caso de que la conexión sea
exitosa, la función devuelve la salida del comando.
Server(paramiko. ServerInterface): Esta clase es descendiente de Paramiko.
Interfaz de servidor de clase. Esta clase administra las solicitudes de conexiones
de clientes SSH y autentica al cliente. La clase tiene tres métodos: __init__(),
check_channel_request() y check_auth_password().
Este es el método constructor de la clase Servidor, crea un evento que se anuncia
mediante la clase Event().
Cuando un cliente SSH solicita abrir un canal, se invoca el método
check_channel_request(self, kind, chanid). El método devuelve Paramiko si el
tipo de canal es "sesión". El mensaje OPEN_SUCCEEDED muestra que se puede
abrir el canal. Si no, devuelve paramiko.
OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED.
Cuando un cliente SSH intenta autenticarse, se llama check_auth_passwordSi el
nombre de usuario y la contraseña son correctos, el método devuelve paramiko.
AUTH_EXITOSO. Si no, se devuelve paramiko. AUTH_FAILED.
Para conectarse a un servidor y ejecutar un comando SSH, use la
primera función ssh_command. Para manejar las solicitudes de conexión del cliente
SSH y autenticar al cliente, la segunda función es una clase de servidor.
Las conexiones SSH se pueden realizar utilizando la función ssh_command de la
biblioteca paramiko. Se le proporciona la dirección IP del servidor, el nombre de
usuario y la contraseña, y el comando que se ejecutará en el servidor como
parámetros. El procedimiento establece una conexión con el servidor, emite el
comando y luego recibe y devuelve la respuesta del servidor.
Servidor: Una clase que lleva a cabo la interfaz del servidor
paramiko. Hay tres métodos disponibles: close, check_auth_password
y check_channel_request. Puede aceptar o rechazar solicitudes de canales con el
comando check_channel_request, autenticar a los usuarios con sus contraseñas con
el comando check_auth_password y finalizar una sesión SSH con el comando
close.
main: El servidor SSH se ejecuta en esta sección. El socket del servidor
se configura primero después de crear una instancia de la clase Server. Después de
eso, espera a que se establezca una conexión con el cliente. Tras el establecimiento
de la conexión, la instancia del servidor configurada previamente se utiliza para
iniciar la sesión SSH. Una vez que se ha verificado al usuario, se crea un canal SSH
y está esperando que el usuario emita un comando. El servidor recibe el comando,
lo procesa y luego envía los resultados al usuario. Una vez que el usuario escribe el
comando "exit", la sesión finaliza.