Que es el protocolo SSH
SSH (Secure Shell) es un protocolo de red que permite la comunicación segura entre un cliente y un servidor. Su principal función es permitir que un usuario pueda acceder a un sistema remoto de forma segura, ejecutar comandos, transferir archivos o incluso establecer túneles cifrados para otros servicios.
Cuando se conecta un usuario, SSH no solo establece un canal seguro, sino que también asigna una TTY virtual, que es la interfaz de terminal que permite interactuar con el shell remoto como si estuvieras físicamente frente al servidor.
SSH utiliza TCP como protocolo de transporte, lo que garantiza una comunicación fiable, y normalmente se conecta al puerto 22. Para resolver el nombre de host o dominio del servidor, el cliente puede usar DNS si en lugar de la IP se proporciona un nombre de dominio.
Características principales
- Seguridad:
- Todo el tráfico está cifrado mediante algoritmos de criptografía moderna.
- Protege contraseñas, comandos y datos frente a intercepciones o ataques de “man-in-the-middle”.
- Autenticación:
- Permite identificarse mediante contraseña o clave pública/privada.
- La autenticación por clave es mucho más segura y común en servidores profesionales.
- Integridad de datos:
- SSH garantiza que los datos no se alteren durante la transmisión.
- Detecta si alguien intenta modificar paquetes mientras viajan por la red.
- Confidencialidad:
- Los datos viajan cifrados, evitando que terceros puedan leer información sensible.
- Acceso a shell mediante TTY:
- Cada sesión SSH crea una TTY virtual para que el usuario pueda enviar comandos al shell remoto.
- Permite ejecutar programas interactivos (
top, nano, vim) y recibir la salida en tiempo real.
- Cada TTY es independiente, permitiendo múltiples usuarios conectados simultáneamente sin interferencias.
Cómo funciona a nivel básico
- El cliente SSH abre un socket TCP hacia el servidor en el puerto configurado (por defecto 22).
- Se establece un canal seguro cifrado entre cliente y servidor.
- Se realiza la autenticación del usuario (contraseña o clave).
- El servidor asigna una TTY virtual para la sesión, proporcionando acceso al shell remoto.
- Una vez autenticado y con la TTY activa, se puede ejecutar comandos, transferir archivos o redirigir puertos.
Usos comunes