Saltar la navegación

Conexión SSH

SSH™ (o Secure SHell) es un protocolo que facilita las comunicaciones seguras entre dos sistemas usando una arquitectura cliente/servidor y que permite a los usuarios conectarse a un host remotamente. A diferencia de otros protocolos de comunicación remota tales como FTP o Telnet, SSH encripta la sesión de conexión, haciendo imposible que alguien pueda obtener contraseñas no encriptadas [6].

SSH está diseñado para reemplazar los métodos más viejos y menos seguros para registrarse remotamente en otro sistema a través de la shell de comando, tales como telnet o rsh. Un programa relacionado, el scp, reemplaza otros programas diseñados para copiar archivos entre hosts como rcp. Ya que estas aplicaciones antiguas no encriptan contraseñas entre el cliente y el servidor, evite usarlas mientras le sea posible. El uso de métodos seguros para registrarse remotamente a otros sistemas reduce los riesgos de seguridad tanto para el sistema cliente como para el sistema remoto.

20.1. Características de SSH

El protocolo SSH proporciona los siguientes tipos de protección:

  • Después de la conexión inicial, el cliente puede verificar que se está conectando al mismo servidor al que se conectó anteriormente.

  • El cliente transmite su información de autenticación al servidor usando una encriptación robusta de 128 bits.

  • Todos los datos enviados y recibidos durante la sesión se transfieren por medio de encriptación de 128 bits, lo cual los hacen extremamente difícil de descifrar y leer.

  • El cliente tiene la posibilidad de reenviar aplicaciones X11 desde el servidor. Esta técnica, llamada reenvío por X11, proporciona un medio seguro para usar aplicaciones gráficas sobre una red.

Ya que el protocolo SSH encripta todo lo que envía y recibe, se puede usar para asegurar protocolos inseguros. El servidor SSH puede convertirse en un conducto para convertir en seguros los protocolos inseguros mediante el uso de una técnica llamada reenvío por puerto, como por ejemplo POP, incrementando la seguridad del sistema en general y de los datos.

En Python también es posible establecer una conexión SSH de una forma muy eficiente y pequeña que se puede establecer con el uso de Paramiko usando PyCrypto te da simpleacceso al protocolo SSH2.
Para saber cómo funciona esta biblioteca, utilizaremos Paramiko para hacer una conexión y ejecutar un comando en un sistema SSH, configurar un SSH servidor y cliente SSH para ejecutar comandos remotos en una máquina con Windows,
y finalmente descifrar el archivo de demostración de túnel inverso incluido con Paramiko, para duplicar la opción de proxy de BHNET debemos primero descargando Paramiko usando el instalador pip (o descárguelo de http://www.paramiko.org/)  o usando el comando: 

pip install paramiko

Una vez instalado correctamente, desarrollaremos el siguiente código que se señala en la siguiente  ejemplificación:

Descargar el código

Jesus Fernando Daniel Tehozol