Protocolo SSH
SSH (Secure Shell, protocolo de shell seguro) es un protocolo cifrado utilizado para el inicio de sesión remoto seguro y otros servicios de red.
SSH protege la seguridad de los datos durante la transmisión mediante comunicación cifrada, y se utiliza ampliamente en escenarios como administración de sistemas, transferencia de archivos y ejecución remota de comandos.
Principios de funcionamiento de SSH
SSH utiliza un modelo cliente-servidor y garantiza la seguridad de la comunicación mediante tecnología de cifrado.
A continuación se presenta el proceso básico de establecimiento de conexión y transmisión de datos de SSH:
1. Establecimiento de conexión

- El cliente se conecta al puerto 22 del servidor (el puerto SSH predeterminado).
- El servidor envía su clave pública al cliente.
- El cliente verifica la clave pública del servidor (generalmente mediante una huella digital de clave de host conocida).
- El cliente y el servidor negocian algoritmos de cifrado (como AES, RSA, etc.).
- El cliente genera una clave de sesión, la cifra con la clave pública del servidor y la envía al servidor.
- Ambas partes utilizan la clave de sesión para cifrar la comunicación posterior.
2. Autenticación de usuario
SSH admite múltiples métodos de autenticación de usuario, siendo los más comunes:
- Autenticación por contraseña: El usuario ingresa el nombre de usuario y la contraseña.
- Autenticación por clave pública: El usuario se autentica con una clave privada y el servidor verifica la clave pública correspondiente.
Autenticación por contraseña

- El cliente envía el nombre de usuario.
- El servidor solicita la contraseña.
- El cliente envía la contraseña cifrada.
- El servidor verifica la contraseña y devuelve el resultado de la autenticación.
Autenticación por clave pública

- El cliente envía el nombre de usuario y la clave pública.
- El servidor envía un número aleatorio.
- El cliente firma el número aleatorio con la clave privada y lo envía al servidor.
- El servidor verifica la firma con la clave pública y devuelve el resultado de la autenticación.
3. Transmisión de datos
Después de una autenticación exitosa, SSH establece un canal de sesión cifrado que admite las siguientes funciones:
- Inicio de sesión remoto: ejecutar comandos en el servidor remoto.
- Transferencia de archivos: transferir archivos mediante SCP o SFTP.
- Reenvío de puertos: reenviar puertos locales al servidor remoto, o viceversa.
Características clave de SSH
-
Comunicación cifrada:
- Utiliza cifrado simétrico (como AES) para cifrar datos.
- Utiliza cifrado asimétrico (como RSA) para intercambiar claves de sesión.
-
Autenticación:
- Admite autenticación por contraseña y autenticación por clave pública.
- La autenticación por clave pública es más segura y no requiere transmitir contraseñas.
-
Integridad de los datos:
- Utiliza algoritmos hash (como SHA) para garantizar que los datos no hayan sido alterados.
-
Versatilidad:
- Admite inicio de sesión remoto, transferencia de archivos, reenvío de puertos, etc.
Escenarios de aplicación de SSH
SSH se utiliza ampliamente en los siguientes escenarios:
- Administración remota: Iniciar sesión en el servidor remoto para ejecutar comandos.
- Transferencia de archivos: Transferir archivos de forma segura mediante SCP o SFTP.
- Reenvío de puertos: Exponer servicios locales al servidor remoto, o viceversa.
- Automatización de tareas: Ejecutar comandos remotos mediante scripts SSH.
Seguridad de SSH
La seguridad de SSH depende de los siguientes factores:
- Gestión de claves: Proteger la clave privada y actualizar periódicamente la clave pública.
- Contraseñas seguras: Utilizar contraseñas complejas para evitar ataques de fuerza bruta.
- Cortafuegos: Limitar el rango de acceso al puerto SSH.
- Deshabilitar el inicio de sesión como root: Reducir los riesgos de seguridad.
En resumen, SSH es un protocolo seguro de inicio de sesión remoto que protege la seguridad de la transmisión de datos mediante comunicación cifrada y múltiples métodos de autenticación. Se utiliza ampliamente en escenarios como administración remota, transferencia de archivos y reenvío de puertos. Si te interesa alguna característica específica o escenario de aplicación de SSH, ¡puedes explorarlo más a fondo!
Otras extensiones