← Blog
// BLUE TEAM · HARDENING

Endurecer SSH: checklist práctico contra fuerza bruta y accesos indebidos

Publicado el 10 ago 2026 · 9 min de lectura
SSHHardeningLinuxFuerza bruta2FA

SSH es la puerta principal de tus servidores, y su configuración por defecto es un imán para la fuerza bruta: en cuanto abres el 22 a Internet empiezan a llover intentos de login automáticos. La buena noticia es que endurecerlo es rápido y casi todo cabe en un fichero: /etc/ssh/sshd_config.

⚠️ Antes de tocar nada: abre una segunda sesión SSH y déjala conectada. Si te equivocas y te bloqueas, esa sesión te salva. Aplica los cambios con sudo sshd -t (comprueba la sintaxis) y luego sudo systemctl reload ssh.

1. Claves, no contraseñas

Una contraseña se adivina por fuerza bruta; una clave de 256 bits, no. Genera un par moderno y copia la pública al servidor:

ssh-keygen -t ed25519 -C "tu-nombre@equipo"
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@servidor

Comprueba que entras con la clave y desactiva las contraseñas en sshd_config:

PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes

2. Nada de root directo

Entrar como root por SSH quita el rastro de quién hizo qué y es el usuario que más se ataca. Entra con tu usuario y escala con sudo:

PermitRootLogin no

3. Restringe quién puede entrar

Por defecto puede intentar autenticarse cualquier usuario del sistema. Limítalo a los necesarios:

AllowUsers sergio deploy
# o por grupo:
AllowGroups ssh-users

4. Frena la fuerza bruta

Cambiar el puerto 22 solo reduce el ruido, no protege (es seguridad por oscuridad). Lo que de verdad ayuda:

MaxAuthTries 3
LoginGraceTime 20
MaxSessions 3

5. Cifrados modernos

Desactiva algoritmos antiguos y deja solo los robustos. Si no lo necesitas, apaga también los forwardings:

KexAlgorithms curve25519-sha256
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com
X11Forwarding no
AllowAgentForwarding no
🔑 ¿Tu clave o tu config son sólidas? El Analizador SSH revisa tu clave pública (tipo, tamaño, algoritmo), te genera los comandos de ssh-keygen correctos y te da un checklist de auditoría del servidor.

6. Doble factor

Para accesos sensibles, añade 2FA con libpam-google-authenticator (código TOTP además de la clave) o pasa a certificados SSH firmados por una CA interna, que caducan y evitan repartir claves sueltas.

7. Vigila

Endurecer no es «configurar y olvidar». Revisa los intentos en /var/log/auth.log (o journalctl -u ssh), y si tienes SIEM, crea una alerta por ráfagas de Failed password o logins fuera de horario desde IPs nuevas.

Checklist

Diez minutos de sshd_config convierten un servidor que recibe miles de intentos al día en uno donde la fuerza bruta simplemente no tiene por dónde entrar.

Sergio Belmonte Morales
Sergio Belmonte Morales
Analista de Ciberseguridad · SOC · Especialista en Sentinel/KQL