Saltar al contenido
TCPRiesgo medio si se expone

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

bash
sudo ss -tlnp | grep ':22 '
nc -zv 203.0.113.10 22
sudo nmap -p 22 203.0.113.10

Crear una clave y copiarla al servidor

bash
ssh-keygen -t ed25519 -C "portatil-ana"
ssh-copy-id usuario@203.0.113.10

/etc/ssh/sshd_config (endurecido)

bash
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
AllowUsers ana deploy
# sudo sshd -t && sudo systemctl reload ssh

Permitir SSH solo desde una IP con ufw

bash
sudo ufw allow from 198.51.100.7 to any port 22 proto tcp
sudo ufw enable

Ver los intentos fallidos

bash
sudo journalctl -u ssh --since today | grep -c "Failed password"
sudo lastb | head

También puedes comprobarlo desde fuera de tu red con nuestro escáner de puertos online.

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.

Puertos relacionados

Ver la lista de puertos