🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo cambiar el puerto SSH en Linux para mayor seguridad

Actualizado el 21 de mayo de 2026

¿Por qué es importante cambiar el puerto SSH?

El protocolo SSH (Secure Shell) es la puerta de entrada a tu servidor Linux. Por defecto, escucha en el puerto 22, un número que todos los atacantes del mundo conocen. Esto convierte tu servidor en un objetivo constante de bots automatizados que intentan acceder mediante fuerza bruta, probando miles de combinaciones de usuario y contraseña por minuto.

Cambiar el puerto SSH es una de las medidas de seguridad más sencillas y efectivas que puedes aplicar. No es una solución mágica, pero sí reduce drásticamente el ruido de ataques automatizados. Al mover el servicio a un puerto no estándar, los escáneres genéricos que buscan el puerto 22 simplemente no te encontrarán.

Piénsalo así: es como cambiar la cerradura de tu casa y no dejar la llave bajo el felpudo. Los ladrones profesionales seguirán sabiendo que hay una puerta, pero los oportunistas que pasan probando todas las puertas de la calle seguirán de largo.

En este artículo te explicaré paso a paso cómo cambiar el puerto SSH en Linux, qué precauciones debes tomar y cómo solucionar los problemas más comunes. No necesitas ser un experto en SysAdmin, solo seguir las instrucciones con calma.


Antes de empezar: requisitos y preparación

Para realizar este cambio necesitas acceso de root o un usuario con permisos de sudo. Si no estás seguro de cómo obtener estos permisos, consulta a tu proveedor de hosting o al administrador de tu servidor.

[WARNING] No realices este cambio sin tener un método de acceso alternativo al servidor. Si te equivocas en la configuración, podrías quedarte fuera. Te recomiendo tener abierta una segunda sesión SSH mientras haces los cambios, o al menos, tener acceso al panel de control de tu proveedor para poder reiniciar o revertir cambios.

Antes de tocar nada, haz una copia de seguridad del archivo de configuración:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Este comando crea una copia llamada sshd_config.bak. Si algo sale mal, puedes restaurarla con sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config.


Paso 1: Elegir un puerto alternativo

El puerto que elijas debe ser un número entre 1024 y 65535. Los puertos por debajo de 1024 requieren privilegios de root y suelen estar reservados para servicios estándar como HTTP (80), HTTPS (443) o FTP (21).

Algunas recomendaciones:

  • Evita puertos muy conocidos como 21, 22, 23, 25, 80, 443, 3306 o 8080.
  • Elige un número que no uses para otros servicios.
  • Puedes usar un puerto alto como 2200, 2222, 22222 o cualquier otro que recuerdes fácilmente.

[TIP] Si tienes un firewall configurado (como UFW o iptables), necesitarás abrir el nuevo puerto y cerrar el 22. Lo veremos más adelante.


Paso 2: Editar el archivo de configuración de SSH

El archivo principal de configuración es /etc/ssh/sshd_config. Vamos a editarlo con un editor de texto. Usaremos nano por ser el más amigable para principiantes:

sudo nano /etc/ssh/sshd_config

Dentro del archivo, busca la línea que dice:

#Port 22

El símbolo # al principio significa que la línea está comentada, es decir, que se usa el valor por defecto (22). Debes eliminar el # y cambiar el número por el puerto que hayas elegido. Por ejemplo, si eliges el puerto 2222, la línea quedará así:

Port 2222

Si no encuentras la línea, puedes añadirla al final del archivo. Guarda los cambios con Ctrl+O y luego Enter. Para salir de nano, usa Ctrl+X.

[INFO] Algunos sistemas usan archivos de configuración separados en /etc/ssh/sshd_config.d/. Si tienes un archivo llamado 50-cloud-init.conf o similar, revisa que no sobrescriba tu configuración. Lo más seguro es añadir tu cambio al final del archivo principal.


Paso 3: Verificar la sintaxis de la configuración

Antes de reiniciar el servicio, es fundamental comprobar que no hay errores en el archivo. Ejecuta:

sudo sshd -t

Este comando verifica la sintaxis y te muestra errores si los hay. Si no aparece nada, la configuración es correcta. Si ves errores, revísalos y corrige el archivo antes de continuar.


Paso 4: Reiniciar el servicio SSH

Ahora toca aplicar los cambios. Reinicia el servicio SSH:

sudo systemctl restart sshd

O en algunos sistemas:

sudo systemctl restart ssh

Si usas SysVinit (sistemas antiguos), el comando sería:

sudo service ssh restart

[WARNING] No cierres tu sesión SSH actual todavía. Mantén esa ventana abierta como "red de seguridad". Si algo sale mal, podrás revertir los cambios desde ahí.


Paso 5: Configurar el firewall

Este paso es crucial. Si tienes un firewall activo, debes permitir el tráfico en el nuevo puerto y bloquear el antiguo. Si no lo haces, podrías quedarte fuera del servidor.

Si usas UFW (Ubuntu/Debian)

sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp
sudo ufw reload

Si usas firewalld (CentOS/Fedora)

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

Si usas iptables directamente

sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
sudo service iptables save

[INFO] Si tu proveedor de hosting tiene un firewall externo (como AWS Security Groups o DigitalOcean Cloud Firewall), también deberás abrir el nuevo puerto desde su panel de control.


Paso 6: Probar la nueva conexión

Desde tu máquina local, abre una nueva terminal e intenta conectar al nuevo puerto:

ssh usuario@tuservidor.com -p 2222

Si la conexión funciona, ¡enhorabuena! Ya tienes SSH configurado en un puerto alternativo. Ahora puedes cerrar la sesión antigua.

Si no funciona, revisa:

  • Que el puerto esté abierto en el firewall.
  • Que el servicio SSH esté corriendo.
  • Que no hayas escrito mal el número de puerto.
  • Que el proveedor de hosting no esté bloqueando el puerto.

Ajustes adicionales para reforzar la seguridad SSH

Cambiar el puerto es solo el primer paso. Aquí tienes otras medidas que puedes aplicar en el mismo archivo sshd_config:

Desactivar el acceso root por SSH

Busca la línea PermitRootLogin y cámbiala a no:

PermitRootLogin no

Esto obliga a usar un usuario normal y luego hacer su o sudo para tareas administrativas.

Usar autenticación por clave pública

Las contraseñas son más fáciles de adivinar que las claves criptográficas. Configura la autenticación por claves:

PasswordAuthentication no
PubkeyAuthentication yes

[WARNING] Antes de desactivar el acceso por contraseña, asegúrate de tener tu clave pública instalada en el servidor. Si no, te quedarás fuera.

Limitar los usuarios que pueden conectarse

Puedes especificar qué usuarios tienen permitido acceder:

AllowUsers usuario1 usuario2

Así, aunque alguien adivine una contraseña, no podrá usar usuarios que no estén en la lista.

Cambiar el tiempo de espera y reintentos

Para dificultar los ataques de fuerza bruta:

LoginGraceTime 30
MaxAuthTries 3

Esto limita a 3 intentos de contraseña y cierra la sesión si no se autentica en 30 segundos.


Cómo cambiar el puerto SSH en Syspanel

Si tu servidor usa Syspanel (anteriormente conocido como HestiaCP) como panel de control, el proceso es ligeramente diferente. Syspanel gestiona la configuración de servicios a través de su interfaz, pero también puedes editar los archivos manualmente.

[INFO] El panel Syspanel usa el puerto 2106 para su interfaz web. No confundas este puerto con el de SSH.

Para cambiar el puerto SSH en un servidor con Syspanel:

  1. Accede a Syspanel usando https://tuservidor.com:2106.
  2. Ve a la sección Servidor o Configuración.
  3. Busca la opción SSH o Acceso remoto.
  4. Cambia el puerto y guarda los cambios.
  5. Reinicia el servicio SSH desde el panel o desde la terminal.

Si prefieres hacerlo manualmente, el proceso es el mismo que hemos descrito: editar /etc/ssh/sshd_config y reiniciar el servicio. Syspanel no sobrescribe este archivo, así que tus cambios se mantendrán.


Solución de problemas comunes

Error: "Connection refused" al conectar

Esto significa que el puerto no está abierto o que el servicio no está escuchando. Verifica con:

sudo netstat -tulpn | grep sshd

Deberías ver el nuevo puerto en la lista. Si no aparece, revisa el archivo de configuración y reinicia el servicio.

Error: "Permission denied" al intentar conectar

Puede ser que tu usuario no tenga permisos o que la autenticación esté fallando. Revisa los logs:

sudo tail -f /var/log/auth.log

O en sistemas Red Hat:

sudo tail -f /var/log/secure

No recuerdo mi nuevo puerto

Es fácil olvidarlo. Puedes consultar la configuración activa:

sudo sshd -T | grep port

Esto te mostrará el puerto actual en uso.


Preguntas frecuentes (FAQ)

¿Es suficiente cambiar el puerto SSH para estar seguro?

No. Es una capa de protección básica, pero deberías combinarla con otras medidas como autenticación por claves, desactivar root y usar un firewall. La seguridad en capas es siempre la mejor estrategia.

¿Puedo tener SSH escuchando en dos puertos a la vez?

Sí, puedes añadir varias líneas Port en la configuración. Esto es útil durante la transición, pero no es recomendable a largo plazo porque multiplicas la superficie de ataque.

¿Qué pasa si mi proveedor de hosting bloquea puertos altos?

Algunos proveedores limitan los puertos disponibles. Consulta su documentación o soporte para saber si el puerto que elegiste está permitido. En ese caso, usa un puerto dentro del rango permitido.

¿Debo cambiar el puerto en cada cliente SSH que use?

Sí. Cada vez que conectes desde un nuevo dispositivo, deberás especificar el puerto con el flag -p o configurarlo en tu cliente SSH. En Windows, por ejemplo, en PuTTY deberás poner el puerto en el campo correspondiente.

¿Cómo puedo revertir el cambio si algo sale mal?

Con la copia de seguridad que hicimos al principio:

sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
sudo systemctl restart sshd

O si tienes acceso al panel de tu proveedor, puedes usar la consola VNC o el modo de rescate para editar el archivo.


Conclusión

Cambiar el puerto SSH en Linux es un procedimiento rápido que mejora notablemente la seguridad de tu servidor al reducir los ataques automatizados. Con los pasos que te he mostrado, puedes hacerlo en menos de diez minutos y sin necesidad de ser un experto.

Recuerda que la seguridad no es un destino, sino un proceso continuo. Combina el cambio de puerto con otras buenas prácticas como el uso de claves SSH, la actualización periódica del sistema y la monitorización de logs. Así mantendrás tu servidor a salvo de la mayoría de amenazas comunes.

Si tienes dudas, deja un comentario o consulta la documentación oficial de tu distribución. Y si usas Syspanel, recuerda que su interfaz web está en el puerto 2106 y que también puedes gestionar la configuración SSH desde allí.

¡Buena suerte con tu servidor y espero que ahora duermas un poco más tranquilo sabiendo que tu SSH no está en el puerto por defecto!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel