
Todos los bots en internet saben que SSH funciona en el puerto 22. Es la primera puerta a la que llaman. A los pocos minutos de poner en marcha un servidor Linux nuevo, verás intentos de inicio de sesión desde IPs de las que nunca has oído hablar, atacando sin parar el puerto SSH predeterminado con ataques de diccionario. Los registros se llenan rápidamente.
Cambiar el puerto SSH predeterminado no hará que tu servidor sea invencible. Quede claro. Pero elimina la gran mayoría del ruido automatizado de fuerza bruta, y solo eso ya justifica los dos minutos que te lleva hacerlo. Piénsalo como si movieras la puerta principal a una calle lateral por la que los atacantes novatos ni siquiera se molestan en pasar.
Esta guía te lleva paso a paso por todo el proceso: elegir un nuevo puerto, editar sshd_config, actualizar las reglas de tu firewall, reiniciar el servicio y confirmar que todo funciona correctamente. Nada complicado. Solo los comandos que necesitas en un VPS Linux.
Elegir un nuevo número de puerto SSH
Antes de tocar cualquier archivo de configuración, necesitas decidir a qué puerto vas a mover SSH. Elige uno incorrecto y entrarás en conflicto con otro servicio. Elige algo obvio y habrás perdido el tiempo.
Aquí tienes una referencia rápida de puertos SSH comunes y de los puertos bien conocidos que debes evitar absolutamente:
| Puerto | Servicio | Protocolo |
| 20/21 | FTP | TCP |
| 22 | SSH | TCP |
| 23 | Telnet | TCP |
| 25 | SMTP | TCP |
| 53 | DNS | TCP/UDP |
| 80 | HTTP | TCP |
| 110 | POP3 | TCP |
| 143 | IMAP | TCP |
| 443 | HTTPS | TCP |
| 3306 | MySQL | TCP |
| 8080 | HTTP alternativo | TCP |
| 8443 | HTTPS alternativo | TCP |
El rango de puertos bien conocidos abarca del 0 al 1023. Estos pertenecen a servicios privilegiados, y tu sistema operativo espera que sigan siendo así. El rango de puertos registrados, del 1024 al 49151, alberga cosas como bases de datos, servidores de aplicaciones y otro software que ya ha reclamado su espacio.
Tu mejor opción es el rango de puertos dinámicos o privados: 49152 a 65535. Ahí no hay nada preasignado. Elige algo aleatorio dentro de ese rango —como 51832 o 62419— y es poco probable que tengas un conflicto. Evita elecciones «ingeniosas» como 2222 o 2200. Esos son los segundos que los atacantes revisan después del 22.
Cómo cambiar el puerto SSH predeterminado
Ya tienes tu número de puerto. Ahora vamos a cambiarlo de verdad. El proceso es el mismo tanto si estás en Ubuntu, Debian, CentOS o cualquier otra distribución Linux convencional. Son cinco pasos, y deberías dejar tu sesión SSH actual abierta durante todo el proceso. Si algo sale mal, esa sesión abierta es tu salvavidas.
Conéctate a tu servidor a través de SSH
Abre una terminal. En macOS o Linux, viene integrada en el sistema. En Windows, descarga PuTTY o usa el cliente OpenSSH integrado si estás en Windows 10 o superior. Ejecuta el comando de inicio de sesión SSH:
ssh username@server_ipIntroduce tu contraseña cuando se te pida. Si ya has configurado la autenticación con clave SSH (y deberías hacerlo), iniciará sesión directamente. En cualquier caso, obtén una shell de root o asegúrate de que puedes ejecutar sudo. Necesitarás privilegios elevados para todo lo que sigue.
Edita el archivo sshd_config
El comportamiento del demonio SSH está controlado por un único archivo de configuración. Ábrelo:
sudo nano /etc/ssh/sshd_configDesplázate hasta que encuentres la línea que dice #Port 22. El símbolo de almohadilla significa que está comentada, y SSH está usando implícitamente el puerto predeterminado 22. Elimina # y cambia 22 por el número de puerto que hayas elegido:
Port 51832Eso es todo en cuanto al archivo de configuración de SSH. Guarda y sal de nano con Ctrl+X, luego Y y después Enter. En algunos sistemas Ubuntu más recientes (22.10+), SSH puede usar en su lugar una configuración basada en sockets. Si el cambio en sshd_config no se mantiene, revisa los archivos de anulación en /etc/ssh/sshd_config.d/ o la configuración de activación de sockets de systemd.
Actualiza las reglas del firewall para el nuevo puerto
Aquí es donde la gente se bloquea a sí misma. Le has indicado a SSH que escuche en un nuevo puerto, pero tu firewall sigue permitiendo tráfico solo en el 22. Si reinicias SSH ahora, estás acabado. Te quedarás bloqueado fuera. Fin del juego.
Si estás usando UFW (el estándar en Ubuntu y Debian), permite primero tu nuevo puerto:
sudo ufw allow 51832/tcpRecarga para aplicar los cambios:
sudo ufw reloadVerifica que las reglas del firewall UFW estén en su lugar:
sudo ufw statusDeberías ver tu nuevo puerto listado como ALLOW. Si estás usando firewalld (común en CentOS/RHEL), el equivalente es:
sudo firewall-cmd --permanent --add-port=51832/tcp && sudo firewall-cmd --reloadSi nunca has configurado ninguna regla de firewall y ufw status muestra «inactive», puedes omitir este paso. Pero probablemente deberías solucionar eso pronto. Ejecutar un servidor sin firewall es buscar problemas.
Reinicia el servicio SSH
Ahora aplica la nueva configuración reiniciando el demonio SSH. En cualquier distribución moderna que use systemd:
sudo systemctl restart sshdEn sistemas más antiguos que todavía usan SysVinit:
sudo service ssh restartComprueba que el reinicio se haya realizado correctamente:
sudo systemctl status sshdDeberías ver «active (running)» sin errores. Si falló, tienes un error tipográfico en sshd_config. Vuelve atrás y arréglalo. Tu sesión actual sigue activa, así que aún puedes hacer cambios.
Verifica que el nuevo puerto SSH esté activo
No des nada por sentado: verifica que el reinicio funcionó. Hay dos cosas que debes comprobar: que el puerto esté abierto y que realmente puedas conectarte a través de él.
Comprueba el puerto con ss o netstat
El comando ss es el reemplazo moderno de netstat en Linux. Ejecuta:
ss -tuln | grep 51832Deberías ver una entrada LISTEN en tu puerto. Si prefieres el método más antiguo con netstat:
netstat -tuln | grep 51832El mismo resultado, herramienta diferente. Si no aparece nada, SSH no está escuchando en ese puerto. Vuelve al archivo sshd_config y revisa bien tu cambio.
Inicia sesión usando el nuevo puerto SSH
Abre una ventana de terminal nueva. No cierres tu sesión actual. Prueba la conexión usando el parámetro -p:
ssh -p 51832 username@server_ipSi obtienes una shell, todo funciona correctamente. El cambio del puerto SSH funcionó. Si la conexión se queda colgada o es rechazada, algo está mal con tus reglas del firewall o con la edición de sshd_config. Tu sesión anterior sigue abierta, así que ve a solucionar el problema.
Una vez que hayas confirmado que el nuevo puerto funciona, puedes eliminar opcionalmente la regla del puerto 22 de tu firewall:
sudo ufw deny 22/tcp && sudo ufw reloadHaz esto solo después de estar 100 % seguro de que el nuevo puerto está funcionando. No hay forma de deshacerlo si te quedas bloqueado fuera.
Preguntas frecuentes sobre el cambio de puerto SSH
Los ataques automatizados de fuerza bruta contra SSH apuntan al puerto 22 de forma predeterminada. Miles de bots escanean rangos completos de direcciones IP buscando esa puerta abierta. Moverlo a un puerto no estándar no detiene a un atacante decidido que ejecute un análisis completo de puertos, pero elimina el «ruido» automatizado. Tus registros de autenticación se vuelven más tranquilos. Tu fail2ban deja de trabajar en exceso. Es una higiene básica de seguridad combinada con medidas adecuadas como la autenticación con clave SSH y deshabilitar el inicio de sesión de root.
Cualquiera en el rango de 49152 a 65535 que puedas recordar. Evita puertos «creativos» como 2222, 8022 o 443 (que entra en conflicto con HTTPS). El número de puerto SSH que elijas no importa mucho siempre que no sea un puerto bien conocido, que no esté siendo usado por otro servicio en tu servidor y que no sea algo que un atacante adivinaría en su segundo intento. Un número aleatorio es bueno. Anótalo en un lugar seguro.
No. Cero impacto. Estás cambiando qué puerta numerada atiende el demonio SSH, no cómo procesa las conexiones. El cifrado, el protocolo de enlace y la transferencia de datos funcionan exactamente igual independientemente del puerto. El rendimiento de tu servidor Linux se mantiene exactamente igual. Lo único que cambia es el punto de entrada y el hecho de que tu servidor deja de aparecer en análisis de puertos poco exhaustivos que apuntan al puerto SSH predeterminado.