Aloje su propio agente de IA con OpenClaw: instalación gratuita en un solo clic!

Cómo cambiar el puerto SSH en Linux

Cómo cambiar el puerto SSH en Linux

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:

PuertoServicioProtocolo
20/21FTPTCP
22SSHTCP
23TelnetTCP
25SMTPTCP
53DNSTCP/UDP
80HTTPTCP
110POP3TCP
143IMAPTCP
443HTTPSTCP
3306MySQLTCP
8080HTTP alternativoTCP
8443HTTPS alternativoTCP

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_ip

Introduce 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_config

Desplá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 51832

Eso 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/tcp

Recarga para aplicar los cambios:

sudo ufw reload

Verifica que las reglas del firewall UFW estén en su lugar:

sudo ufw status

Deberí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 --reload

Si 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 sshd

En sistemas más antiguos que todavía usan SysVinit:

sudo service ssh restart

Comprueba que el reinicio se haya realizado correctamente:

sudo systemctl status sshd

Deberí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 51832

Deberías ver una entrada LISTEN en tu puerto. Si prefieres el método más antiguo con netstat:

netstat -tuln | grep 51832

El 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_ip

Si 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 reload

Haz 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

¿Por qué cambiar el puerto SSH predeterminado?

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.

¿Cuál es el mejor puerto para SSH?

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.

¿Cambiar el puerto SSH afecta al rendimiento?

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.

Scroll al inicio