6.3 SSH Profesional: Acceso Seguro y Gestión Remota¶
Introducción¶
SSH (Secure Shell) es el estándar de facto para la administración remota segura en sistemas Linux. Permite a los Sysadmins conectarse, ejecutar comandos, transferir archivos y automatizar tareas en servidores distribuidos de forma cifrada y autenticada.
En entornos de producción, una mala configuración de SSH es una de las principales puertas de entrada para ataques. Por ello, dominar SSH no solo implica saber conectarse, sino securizar, auditar y optimizar su uso en infraestructuras críticas.
Objetivos de aprendizaje¶
Al finalizar este capítulo serás capaz de:
- Comprender el funcionamiento interno de SSH.
- Configurar accesos seguros basados en claves.
- Gestionar conexiones remotas de forma eficiente.
- Transferir archivos con
scpyrsync. - Securizar el servicio SSH (
sshd). - Diagnosticar problemas de conexión.
Conceptos Teóricos¶
1. ¿Qué es SSH?¶
SSH es un protocolo criptográfico que permite:
- acceso remoto seguro
- ejecución de comandos
- transferencia de datos
Funciona bajo el modelo cliente-servidor:
- ssh (cliente)
- sshd (servidor)
Puerto por defecto:
2. Autenticación¶
SSH soporta dos métodos principales:
1. Contraseña¶
- Simple pero inseguro.
- Vulnerable a ataques brute-force.
2. Clave pública/privada (recomendado)¶
- Mucho más seguro.
- Basado en criptografía.
Archivos clave:
~/.ssh/id_rsa→ clave privada~/.ssh/id_rsa.pub→ clave pública
3. Proceso de conexión SSH¶
- Cliente inicia conexión.
- Intercambio de claves.
- Verificación del servidor (known_hosts).
- Autenticación.
- Sesión cifrada.
4. Archivos importantes¶
- /etc/ssh/sshd_config → configuración del servidor
- ~/.ssh/authorized_keys → claves permitidas
- ~/.ssh/known_hosts → servidores conocidos
Laboratorio Práctico¶
Escenario¶
Quieres securizar el acceso a un servidor:
- eliminar acceso por contraseña
- usar claves SSH
- endurecer configuración
Parte 1: Generación de claves¶
Explicación¶
-t ed25519→ algoritmo moderno y seguro.-C→ comentario identificativo.
Archivos generados:
Parte 2: Copiar clave al servidor¶
Alternativa manual:
Parte 3: Conexión sin contraseña¶
Parte 4: Configuración del servidor (hardening)¶
Editar:
Configuración recomendada:
Aplicar cambios¶
No bloquearse fuera
Nunca desactives autenticación por contraseña sin haber probado acceso por clave.
Parte 5: Transferencia de archivos¶
SCP¶
RSYNC (más eficiente)¶
Parte 6: Túneles SSH¶
Ejemplo: forward local
Accedes a:
Parte 7: Configuración cliente SSH¶
Editar:
Ejemplo:
Uso:
Errores Comunes y Troubleshooting¶
1. Permission denied (publickey)¶
Causas:
- clave no copiada
- permisos incorrectos
Solución:
2. Connection refused¶
Servidor SSH no activo.
3. Timeout de conexión¶
- Firewall bloqueando puerto 22.
- IP incorrecta.
4. Clave rechazada¶
Ejecuta:
Debug detallado.
5. known_hosts conflict¶
Buenas Prácticas (Nivel Senior)¶
1. Deshabilitar root¶
2. Cambiar puerto SSH¶
Reduce ruido de ataques automatizados.
3. Restringir acceso por IP¶
4. Fail2Ban¶
Protege contra brute-force:
5. Uso de claves modernas¶
Preferir:
6. Auditoría de accesos¶
7. Agente SSH¶
Para evitar múltiples autenticaciones:
8. Seguridad avanzada¶
Opciones en sshd_config:
Resumen y Siguiente Paso¶
Has aprendido a usar SSH de forma profesional: autenticación con claves, securización del servicio, transferencia de archivos y diagnóstico de problemas. Este conocimiento es crítico para gestionar servidores remotos de forma segura y eficiente.
El siguiente paso es completar el dominio de red con herramientas de diagnóstico profundo:
➡️ 6.4 Diagnóstico de Red, donde aprenderás a identificar problemas complejos de conectividad, latencia y routing en entornos reales.