Refuerzo de SSH y autenticación basada en claves
Desactive la autenticación mediante contraseña, configure pares de claves, restrinja el acceso con AllowUsers y utilice fail2ban.
Refuerzo de SSH y autenticación basada en claves es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.
Por qué importa la seguridad de SSH
SSH es el protocolo principal de administración remota para servidores Linux. Un servidor SSH mal configurado es uno de los puntos de entrada más comunes para los atacantes: está expuesto a Internet y es objetivo constante de bots que realizan ataques de fuerza bruta.
Generar un par de claves SSH
La autenticación basada en claves es más segura que las contraseñas. Genere un par de claves:
ssh-keygen -t ed25519 -C "your_email"
# Creates ~/.ssh/id_ed25519 (private) and id_ed25519.pub (public)
# Never share the private keyInstalar claves públicas
Copie su clave pública al servidor:
ssh-copy-id user@server
# Or manually:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keysDeshabilitar la autenticación mediante contraseña
Una vez que funcione la autenticación basada en claves, deshabilite el inicio de sesión con contraseña para eliminar el riesgo de ataques de fuerza bruta:
# In /etc/ssh/sshd_config:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
sudo systemctl restart sshdCambiar el puerto SSH predeterminado
Mover SSH del puerto 22 reduce el ruido de los escaneos automatizados. Es seguridad por oscuridad: no constituye una defensa real, pero reduce el exceso de registros. Actualice siempre las reglas del firewall para que coincidan.
# /etc/ssh/sshd_config
Port 2222
# Then update firewall:
ufw allow 2222/tcp
ufw delete allow 22/tcpRestringir el acceso SSH por usuario o IP
Limite qué usuarios pueden utilizar SSH y desde dónde:
# /etc/ssh/sshd_config
AllowUsers alice bob
AllowGroups sshusers
# Or restrict by source IP in /etc/hosts.allow:
sshd: 192.168.1.0/24Límites de tiempo de espera e inicio de sesión de SSH
Reduzca la exposición mediante límites para las sesiones y los intentos:
# /etc/ssh/sshd_config
ClientAliveInterval 300 # disconnect idle sessions after 5 min
ClientAliveCountMax 2
MaxAuthTries 3 # max password attempts
LoginGraceTime 30 # seconds to authenticateUsar fail2ban
fail2ban supervisa los archivos de registro y bloquea las IP que muestran patrones maliciosos, como demasiados inicios de sesión SSH fallidos. Actualiza dinámicamente las reglas del firewall para bloquear a los atacantes.
apt install fail2ban
# /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 3
bantime = 3600Agente SSH y reenvío de claves
El agente SSH almacena en memoria su clave privada descifrada para que no tenga que volver a introducir la frase de contraseña en cada inicio de sesión. El reenvío del agente (ssh -A) pasa su clave a través de varios saltos. Utilícelo con cuidado, ya que un servidor intermedio comprometido podría robar su clave desde el socket del agente.
Autenticación de dos factores para SSH
Añada TOTP a SSH mediante el módulo PAM de Google Authenticator para obtener protección adicional incluso cuando utilice autenticación basada en claves. Se necesitan tanto la clave como una OTP basada en tiempo para iniciar sesión.
Auditar la configuración de SSH
Verifique la configuración de SSH con:
sshd -T | grep -E "passwordauth|permitroot|pubkeyauth|port"
# Check who is connected:
ss -tnp | grep :22
whoComprobación rápida: refuerzo de SSH
¿Qué configuración de sshd_config debe establecerse en no para eliminar los ataques de fuerza bruta mediante contraseña contra SSH?
Repaso de la lección
Refuerzo de SSH: utilice claves Ed25519, deshabilite la autenticación mediante contraseña, deshabilite el inicio de sesión de root, cambie el puerto 22, restrinja AllowUsers, establezca tiempos de espera por inactividad e instale fail2ban. Nunca comparta claves privadas. Audite con sshd -T. El reenvío del agente es práctico, pero peligroso en hosts que no sean de confianza.
Preguntas frecuentes
¿La lección «Refuerzo de SSH y autenticación basada en claves» es gratis?
Sí — el texto completo de «Refuerzo de SSH y autenticación basada en claves» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Refuerzo de SSH y autenticación basada en claves»?
Desactive la autenticación mediante contraseña, configure pares de claves, restrinja el acceso con AllowUsers y utilice fail2ban. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cyber Security Academy?
No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Refuerzo de SSH y autenticación basada en claves»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?
Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Permisos y propiedad de archivos
- Gestión de usuarios y grupos
- Refuerzo de SSH y autenticación basada en claves
- Reglas de firewall con iptables y UFW