Cómo cambiar el puerto SSH de tu VPS sin quedarte fuera
Cambia el puerto SSH de tu VPS paso a paso sin perder el acceso: abre el puerto nuevo, edita sshd, ajusta el firewall del panel y la consola web.
Para cambiar el puerto SSH de tu VPS, permite primero el puerto nuevo en todos los firewalls, haz que SSH escuche en el puerto antiguo y en el nuevo, prueba el nuevo desde una segunda terminal y solo entonces quita el 22. Después, actualiza el panel para que su Firewall y su consola web conozcan el puerto nuevo. Si lo haces en este orden, nunca pierdes el acceso.
Antes de empezar
- Elige un puerto entre 1024 y 65535 que no use nada más, como
2222o49222. Los ejemplos usan2222. - Conéctate por SSH y mantén esa sesión abierta hasta el final.
- Ten a mano cómo abrir la consola Pantalla del panel, por si algo sale mal (la consola VNC del VPS).
- Cambiar el puerto reduce el ruido de los bots en tus registros. No sustituye a las claves ni a fail2ban; consulta Primeros pasos de seguridad en tu VPS.
Paso 1: permite el puerto nuevo en los firewalls
Dentro del servidor
sudo ufw allow 2222/tcpsudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reloadEn el panel: si tu nivel de protección es Estricto, abre el puerto: Firewall, Crear regla, Abrir un puerto, escribe 2222 y elige el protocolo TCP. En los otros niveles el puerto ya responde, pero anotarlo mejora la revisión. Consulta Cómo abrir un puerto en el firewall de tu VPS.
Paso 2: haz que SSH escuche en los dos puertos
Crea un archivo de configuración que conserve el 22 y agregue el 2222:
sudo tee /etc/ssh/sshd_config.d/00-port.conf <<'EOF'
Port 22
Port 2222
EOF
sudo sshd -tSi sshd -t no imprime nada, la sintaxis es válida. Después aplica el cambio según tu sistema:
sudo systemctl restart sshsudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl restart sshsudo dnf install policycoreutils-python-utils -y
sudo semanage port -a -t ssh_port_t -p tcp 2222
sudo systemctl restart sshdEn las versiones de Ubuntu sin ssh.socket (como la 20.04), basta con sudo systemctl restart ssh. En AlmaLinux y Rocky hay que indicarle a SELinux que SSH puede usar el puerto nuevo, que es lo que hace semanage.
Comprueba que el servidor escucha en ambos puertos:
sudo ss -tlnp | grep -E ":22 |:2222 "En Ubuntu, las versiones recientes inician SSH bajo demanda mediante ssh.socket. Si la salida muestra solo el puerto 22, ejecuta sudo systemctl disable --now ssh.socket y después sudo systemctl enable --now ssh, y vuelve a comprobar.
Paso 3: prueba el puerto nuevo
Abre una terminal nueva (no cierres la antigua) y conéctate con -p:
ssh -p 2222 [email protected]En PuTTY, cambia Port a 2222. Si conecta, continúa. Si no, vuelve a la sesión antigua, repasa los pasos 1 y 2 y lee Qué hacer si no puedes conectarte a tu VPS.
Paso 4: actualiza el panel
- Firewall: abre la página Firewall, elige tu servidor, entra en la pestaña Reglas y busca Dónde atienden tus servicios. Pulsa Cambiar junto a SSH, introduce
2222y Guardar. Esto solo informa al firewall; no mueve SSH. Sin esto, la guardia de SSH sigue vigilando el puerto antiguo. - Consola web: abre tu servidor, pestaña Consola. En Cómo entra la consola, pulsa Cambiar, pon
2222en Puerto y pulsa Guardar. Sin esto, la terminal web intenta el puerto 22 y falla. - La tarjeta Desde tu compu ya muestra el comando con
-p 2222.

Paso 5: quita el puerto 22
Cuando todo funcione en el 2222, edita /etc/ssh/sshd_config.d/00-port.conf y deja solo:
Port 2222Aplícalo con los mismos comandos de reinicio de antes (en Ubuntu, daemon-reload y después restart ssh.socket). Vuelve a probar con ssh -p 2222 .... Por último, cierra el puerto antiguo en el firewall del servidor (sudo ufw delete allow 22/tcp).
Quita el puerto 22 solo después de haber entrado por el 2222 desde una sesión aparte. Si te quedas fuera, usa la consola Pantalla para iniciar sesión y restaura Port 22 en el archivo.
Solución de problemas
- Connection refused en el 2222: SSH aún no escucha ahí. Comprueba con
ss -tlnpy repasa el paso de reinicio de tu sistema. - Connection timed out en el 2222: un firewall lo bloquea. Repasa el paso 1, incluido el modo Estricto del panel.
- La consola web falla después del cambio: el Puerto de Cómo entra la consola sigue indicando el 22.
- En AlmaLinux o Rocky, SSH no reinicia: probablemente te saltaste el comando
semanage.
Preguntas frecuentes
¿Es seguro cambiar el puerto SSH?
Sí, si mantienes abierta tu sesión actual y pruebas el puerto nuevo antes de quitar el antiguo.
¿Cambiar el puerto SSH hace más seguro mi VPS?
Solo un poco: evita la mayoría de los escaneos automáticos. Para una protección real, usa claves SSH, desactiva el acceso por contraseña y agrega fail2ban.
¿Qué puerto SSH debo usar?
Cualquiera libre entre 1024 y 65535. Evita los puertos conocidos que usan otros servicios.
¿Tengo que decirle el puerto nuevo al panel?
Sí. Actualiza el puerto de SSH en las reglas del Firewall y en los ajustes de la consola web, o seguirán usando el 22.
¿Cómo me conecto a un puerto personalizado?
Agrega -p al comando, como en ssh -p 2222 root@IP, o cambia el campo Port de PuTTY.
Artículos relacionados
- Cómo conectarte por SSH a tu VPS
- Primeros pasos de seguridad en tu VPS
- Cómo abrir un puerto en el firewall de tu VPS
- Consola SSH web del VPS
¿Buscas un servidor que puedas configurar libremente? Echa un vistazo a nuestros planes de VPS.