Puerto 22 (SSH): para qué sirve y cómo protegerlo
El puerto 22 TCP es el de SSH (Secure Shell), el protocolo para administrar servidores de forma remota y cifrada. Por él también funcionan SFTP y SCP para copiar ficheros y los túneles SSH. Es uno de los puertos más atacados de Internet: cualquier servidor con el 22 abierto recibe intentos de login a los pocos minutos.
Qué es el puerto 22
SSH sustituyó a Telnet a finales de los 90 porque lo cifra todo: credenciales, órdenes y respuestas. Es la puerta de entrada a casi cualquier servidor Linux, así que protegerlo bien es lo primero que hay que hacer en un VPS nuevo.
Cambiar el puerto (al 2222, por ejemplo) reduce el ruido de los bots en los logs, pero no es una medida de seguridad real: un escaneo de puertos lo encuentra en segundos. Lo que protege de verdad es desactivar las contraseñas y entrar solo con claves.
¿Es peligroso tener abierto el puerto 22?
Riesgo medio: Solo expuesto con autenticación fuerte o limitado por IP.
- Exponerlo es normal en un servidor, pero solo con autenticación por clave.
- Con contraseñas débiles, los ataques de fuerza bruta acaban entrando.
Cómo proteger el puerto 22
- Entra con claves (ed25519) y desactiva PasswordAuthentication.
- Desactiva el login directo como root (PermitRootLogin no).
- Instala fail2ban para bloquear IPs tras varios fallos.
- Si solo entras desde sitios conocidos, limita el puerto por IP o ponlo detrás de una VPN (WireGuard) o de Tailscale.
Comandos y configuración
Comprobar si el puerto 22 está abierto
sudo ss -tlnp | grep ':22 '
nc -zv 203.0.113.10 22
sudo nmap -p 22 203.0.113.10Crear una clave y copiarla al servidor
ssh-keygen -t ed25519 -C "portatil-ana"
ssh-copy-id usuario@203.0.113.10/etc/ssh/sshd_config (endurecido)
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
AllowUsers ana deploy
# sudo sshd -t && sudo systemctl reload sshPermitir SSH solo desde una IP con ufw
sudo ufw allow from 198.51.100.7 to any port 22 proto tcp
sudo ufw enableVer los intentos fallidos
sudo journalctl -u ssh --since today | grep -c "Failed password"
sudo lastb | headTambién puedes comprobarlo desde fuera de tu red con nuestro escáner de puertos online.
Herramientas para comprobarlo
Preguntas frecuentes
¿Es seguro tener el puerto 22 abierto?
Sí, si solo se permite entrar con claves, root no puede iniciar sesión directamente y hay fail2ban o similar. El peligro real son las contraseñas.
¿Merece la pena cambiar el puerto de SSH?
Reduce mucho los intentos automáticos en los logs, pero no protege frente a alguien que te escanee. Es un complemento, no una alternativa a usar claves.
¿SFTP usa el puerto 22?
Sí. SFTP funciona dentro de SSH, así que usa el mismo puerto y las mismas credenciales.