Cubierta segura


Secure Shell ( SSH ) es un protocolo de red criptográfico para operar servicios de red de forma segura en una red no protegida. [1] Las aplicaciones típicas incluyen la línea de comandos remota , el inicio de sesión y la ejecución remota de comandos, pero cualquier servicio de red puede protegerse con SSH.

SSH proporciona un canal seguro a través de una red no segura mediante el uso de una arquitectura cliente-servidor , conectando una aplicación de cliente SSH con un servidor SSH . [2] La especificación del protocolo distingue entre dos versiones principales, denominadas SSH-1 y SSH-2. El puerto TCP estándar para SSH es 22. SSH se usa generalmente para acceder a sistemas operativos similares a Unix, pero también se puede usar en Microsoft Windows . Windows 10 usa OpenSSH como su cliente SSH y servidor SSH predeterminados . [3]

SSH fue diseñado como un reemplazo para Telnet y para protocolos de shell remotos no seguros como el Berkeley rsh y los protocolos relacionados rlogin y rexec . Esos protocolos envían información confidencial, en particular contraseñas , en texto plano , lo que los hace susceptibles de ser interceptados y divulgados mediante el análisis de paquetes . [4] El cifrado utilizado por SSH está destinado a proporcionar confidencialidad e integridad de los datos a través de una red no segura, como Internet .

SSH utiliza criptografía de clave pública para autenticar la computadora remota y permitirle autenticar al usuario, si es necesario. [2]

Hay varias formas de utilizar SSH; uno es usar pares de claves públicas-privadas generadas automáticamente para simplemente encriptar una conexión de red y luego usar la contraseñaautenticación para iniciar sesión. Otra es utilizar un par de claves pública-privada generadas manualmente para realizar la autenticación, lo que permite a los usuarios o programas iniciar sesión sin tener que especificar una contraseña. En este escenario, cualquiera puede producir un par coincidente de claves diferentes (públicas y privadas). La clave pública se coloca en todas las computadoras que deben permitir el acceso al propietario de la clave privada correspondiente (el propietario mantiene la clave privada en secreto). Si bien la autenticación se basa en la clave privada, la clave en sí nunca se transfiere a través de la red durante la autenticación. SSH solo verifica si la misma persona que ofrece la clave pública también es propietaria de la clave privada correspondiente. En todas las versiones de SSH es importante verificar las claves públicas desconocidas , es decir, asociar las claves públicas con identidades, antes de aceptarlos como válidos. Aceptar la clave pública de un atacante sin validación autorizará a un atacante no autorizado como usuario válido.

En sistemas similares a Unix, la lista de claves públicas autorizadas generalmente se almacena en el directorio de inicio del usuario al que se le permite iniciar sesión de forma remota, en el archivo ~ / .ssh / allowed_keys. [5] Este archivo es respetado por SSH solo si no se puede escribir en él por nada que no sea el propietario y el root. Cuando la clave pública está presente en el extremo remoto y la clave privada coincidente está presente en el extremo local, ya no es necesario escribir la contraseña. Sin embargo, para mayor seguridad, la clave privada en sí puede bloquearse con una frase de contraseña.


Ejemplo de tunelización de una aplicación X11 sobre SSH: el usuario 'josh' tiene "SSHed" desde la máquina local 'foofighter' a la máquina remota 'tengwar' para ejecutar xeyes .
Iniciar sesión en OpenWrt a través de SSH usando PuTTY que se ejecuta en Windows .
Diagrama del paquete binario SSH-2.