El protocolo SSH permite a los usuarios acceder a máquinas remotas a traves de una red. A parte de esta aplicación también nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH. La primera versión del protocolo y el programa eran libres y los creó un finlandés llamado Tatu Ylönen, pero su licencia fue cambiando y terminó apareciendo la compañía SSH Communications Security, que lo ofrecía gratuitamente para uso doméstico y académico, pero exigía el pago a otras empresas.En 1999 se empezó a escribir una versión que se convertiría en la implementación libre por excelencia, la de OpenBSD, llamada OpenSSH. El objetivo de la versión 1 del protocolo (SSH1), propuesta en 1995, era ofrecer una alternativa a las sesiones interactivas tales como Telnet, rsh, rlogin y rexec. Sin embargo, este protocolo tenía un punto débil que permitía a los hackers introducir datos en los flujos cifrados. Por este motivo, en 1997 se propuso la versión 2 del protocolo (SSH2) como un anteproyecto del IETF. Una cierta serie de eventos ayuda a proteger la integridad de una comunicación SSH entre dos hosts.
Primero, se crea una capa de transporte segura para que el cliente sepa que está efectivamente comunicando con el servidor correcto. Luego se cifra la comunicación entre el cliente y el servidor por medio de un código simétrico.
Después, con la conexión segura al servidor en su lugar, el cliente se autentica ante el servidor sin preocuparse de que la información de autenticación pudiese exponerse a peligro.
Por último, con el cliente autenticado ante el servidor, se pueden usar varios servicios diferentes con seguridad a través de la conexión, como una sesión shell interactiva, aplicaciones X11 y túneles TCP/IP.
Las características más importantes de este protocolo son varias:
Encripta la sesión de registro imposibilitando que alguien pueda obtener contraseñas no encriptadas.
El cliente puede verificar que se está conectando al servidor al que se conectó inicialmente.
Todos los datos enviados y recibidos durante la conexión así como la informacion de autenticación del cliente se transfieren por medio de encriptación de 128 bits, lo cual los hacen extremamente difícil de descifrar y leer.
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.
Muchas aplicaciones SSH cliente están disponibles para casi todos los principales sistemas operativos en uso hoy día.
Para empezar a usar SSH se necesita un software que tenga esta funcionalidad integrada. Para Windows, una de las aplicaciones más utilizadas, es la herramienta Putty, la cual puede realizar varios tipos de conexión a diferentes puertos, donde se incluye el puerto por defecto de SSH, el 22. Por otro lado en Linux y Unix normalmente ya viene instalado la aplicación SSH.