> La lista completa de artículos está en [llms.txt](https://docs.f3cloud.com/llms.txt). Cada página tiene versión en Markdown, basta con añadir .md a su dirección. Esta página en Markdown: [https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access/change-ssh-port.md](https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access/change-ssh-port.md).

# Cómo cambiar el puerto SSH en Ubuntu, Debian y AlmaLinux

Cómo cambiar el puerto SSH 22 por defecto por otro sin perder el acceso al servidor. Apertura del puerto en el cortafuegos, SELinux, particularidades de Ubuntu 24.04 y comprobación de la conexión.

Por defecto, SSH funciona en el puerto **22**, y es justo el primero que comprueban los bots que buscan servidores para atacar. Si mueves SSH a otro puerto, la mayor parte de ese «ruido» simplemente desaparecerá de los registros.

Es importante entender que cambiar el puerto es una medida adicional, no un sustituto de una protección de verdad. Lo principal es el [acceso con claves SSH](https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access/ssh-keys.md), y el cambio de puerto lo complementa muy bien.

> **No cierres la conexión actual.**
>
> Haz todos los pasos sin cerrar la sesión con la que estás conectado. Solo podrás cerrarla cuando el acceso por el nuevo puerto funcione en otra ventana.

***

### 1. Elige un puerto nuevo

Sirve cualquier número libre entre **1024** y **65535**. En los ejemplos usamos `2222`, pero es mejor elegir algo menos evidente, por ejemplo `48222`. Apunta el puerto que elijas, porque lo necesitarás cada vez que te conectes.

***

### 2. Abre el puerto nuevo en el cortafuegos

Los comandos se ejecutan en el servidor.\
En Ubuntu y Debian puedes saltarte este paso si no tienes el cortafuegos activado.\
En AlmaLinux, CentOS y Oracle Linux tienes que hacerlo en cualquier caso por SELinux.

#### Ubuntu y Debian (UFW)

```bash
# Permitimos las conexiones al nuevo puerto SSH
sudo ufw allow 2222/tcp
```
#### AlmaLinux, CentOS, Oracle Linux

```bash
# Abrimos el nuevo puerto en el cortafuegos firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

# Por defecto, SELinux solo permite SSH en el puerto 22.
# Instalamos la utilidad semanage y añadimos el nuevo puerto a la lista
# de puertos permitidos para SSH
sudo dnf install -y policycoreutils-python-utils
sudo semanage port -a -t ssh_port_t -p tcp 2222
```

***

### 3. Indica el puerto nuevo en la configuración de SSH

Los comandos se ejecutan en el servidor.

```bash
# Abrimos el archivo con nuestra configuración de SSH. Si has seguido
# la guía sobre claves SSH,
# ya existe; si no, el archivo se creará ahora
sudo nano /etc/ssh/sshd_config.d/00-security.conf
```

Añade al archivo una línea con el puerto nuevo.

```ssh-config
# Ahora SSH escucha en el puerto 2222 en lugar del 22
Port 2222
```

Para guardar el archivo, pulsa <kbd>Ctrl</kbd> + <kbd>O</kbd> y <kbd>Enter</kbd>, y para salir del editor, <kbd>Ctrl</kbd> + <kbd>X</kbd>.

```bash
# Comprobamos que la configuración no tenga errores. Si el comando
# no muestra nada, todo está bien
sudo sshd -t
```

***

### 4. Reinicia SSH

#### Ubuntu 24.04 y posteriores

```bash
# En las versiones nuevas de Ubuntu, SSH se inicia mediante un socket de systemd,
# así que primero recargamos la configuración y después reiniciamos
# tanto el socket como el propio SSH
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl restart ssh
```
#### Ubuntu 22.04 y Debian

```bash
# Reiniciamos SSH para que empiece a escuchar en el puerto nuevo
sudo systemctl restart ssh
```
#### AlmaLinux, CentOS, Oracle Linux

```bash
# Reiniciamos SSH para que empiece a escuchar en el puerto nuevo
sudo systemctl restart sshd
```

Ahora vamos a comprobar que SSH escucha de verdad en el puerto nuevo.

```bash
# En la lista debe aparecer el puerto 2222
sudo ss -tlnp | grep ssh
```

***

### 5. Conéctate por el puerto nuevo

Ejecuta este comando en tu ordenador, en una ventana **nueva** del terminal.

```bash
# La opción -p indica el puerto de conexión
ssh -p 2222 admin@SERVER_IP
```

En Termius, el puerto se cambia en la configuración de la conexión, en el campo **Port**.

***

### 6. Cierra el puerto 22 antiguo

Cuando el acceso por el puerto nuevo ya funcione, cierra el puerto 22 en el cortafuegos.

#### Ubuntu y Debian (UFW)

```bash
# Eliminamos la regla del antiguo puerto SSH
sudo ufw delete allow 22/tcp

# Comprobamos la lista de reglas
sudo ufw status
```
#### AlmaLinux, CentOS, Oracle Linux

```bash
# Quitamos el servicio SSH estándar (puerto 22) de los abiertos
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

# Comprobamos qué está abierto
sudo firewall-cmd --list-all
```

> **Si usas fail2ban.**
>
> Si usas fail2ban, indica el puerto nuevo también en su configuración; si no, bloqueará a los atacantes en el puerto equivocado. Te explicamos cómo hacerlo en el artículo [sobre fail2ban](https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access/fail2ban.md).

> **Si aun así pierdes el acceso.**
>
> Si aun así pierdes el acceso, abre el servidor con el botón <kbd>Console</kbd> en la lista de servidores del área de cliente. Desde ahí puedes borrar la línea `Port` del archivo `/etc/ssh/sshd_config.d/00-security.conf` y reiniciar SSH.

***

### Nuestros recursos

**Canal de Telegram:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Web del hosting:** [https://f3cloud.com](https://f3cloud.com/es)
