# Cambiar el puerto SSH en Ubuntu 24.04 y Debian Bookworm

## Introducción
Cada un tiempo salen cambios, y en la época que vivimos son muy a menudo, y alguno, incluso olvidamos los tiempos de Slackware o mas duro aun, una [Gentoo](https://www.gentoo.org/) o un [Linux From Scratch](https://www.linuxfromscratch.org/). 

Uno de esos cambios que viene en las ultimas estables de Debian y derivados es uno que puede despistarte con el cambio de puerto para SSH.

> En el caso de Redhat/CentOs y derivadas el lío sería otro pero también existe.

### Cambiar el puerto SSH en Ubuntu 24.04 /Debian Bookworn

> Debian puede variar algo, pero la idea es la misma.

La cuestión esta en que al margen de el cambio de la clave `Port` al puerto deseado en el fichero `/etc/ssh/sshd_config` necesitamos unos pasos adicionales.

Si echamos una vista al `systemd` de nuestra distro Ubuntu vemos dos entradas para `ssh` siendo la interesante `/etc/systemd/system/ssh.service.requires`


![Ubuntu 24 : /etc/systemd/system](https://multimedia.castris.com/imagenes/wiki/sysadmin/ubuntu24-etc_systemd_system.jpg)

![Ubuntu 24 : /etc/systemd/system/ssh.service.requires](https://multimedia.castris.com/imagenes/wiki/sysadmin/ubuntu24-etc_systemd_system_service_requires.jpg)

Editemos */etc/systemd/system/ssh.service.requires/ssh.socket*

![Ubuntu 24 : /etc/systemd/system/ssh.service.requires : Editar](https://multimedia.castris.com/imagenes/wiki/sysadmin/ubuntu24-etc_systemd_system_service_requires_edit.jpg)

Y despues editemos */etc/ssh/sshd_config*

```
Port 0000 # 0000 es el número del puerto deseado y libre
```


Así que se trata de editar la clave `ListenStream` con el mismo puerto que hemos puesto en la configuración de SSHD.

> No olvides que esto es después de que al cambiar el valor de `Port` no te funcione 😊

Después es lo habitual en `systemd` por que hay que hacer un reload tras los cambios en `systemd`

```
systemctl daemon-reload
systemctl restart ssh
```

> No olvides el firewall 😊😊😊

### Cambiar también en SSHD (Editado: 6/3/25)

Algunos me han preguntado, y si es cierto que también hay que cambiar el puerto en el fichero `/etc/ssh/sshd_conf`

```bash
Port XXXXX
```


## Compatibilidad con Ubuntu 22.04 (Editado: 18/07/25)

Ubuntu 22.04 incluye soporte completo para ambos métodos pero usa el servicio tradicional por defecto.

### Verificar tu configuración actual

```bash
systemctl status ssh.socket
```

### Si muestra "inactive (dead)": Usas el método tradicional

En este caso solo necesitas:

```bash
# Editar configuración SSH
sudo nano /etc/ssh/sshd_config
# Cambiar: Port 2222

# Reiniciar servicio
sudo systemctl restart ssh.service

# Verificar
sudo ss -tlnp | grep :2222
```

### Para migrar a formato socket (recomendado para consistencia)

```bash
# Verificar archivos disponibles
ls -la /lib/systemd/system/ssh*

# Migrar a socket systemd
sudo systemctl stop ssh.service
sudo systemctl disable ssh.service

# Configurar socket con puerto personalizado
sudo systemctl edit ssh.socket
```

Añadir en el editor:
```ini
[Socket]
ListenStream=
ListenStream=2222
```

```bash
# Editar configuración SSH
sudo nano /etc/ssh/sshd_config
# Port 2222

# Activar socket
sudo systemctl daemon-reload
sudo systemctl enable ssh.socket
sudo systemctl start ssh.socket

# Verificar migración exitosa
sudo systemctl status ssh.socket
sudo ss -tlnp | grep :2222
```

**Ventaja de la migración:** Consistencia con Ubuntu 24.04+ y mejor gestión de recursos.


### Agradecimientos
- [A samon en Forum ARMBian](https://forum.armbian.com/topic/30718-bug-cant-change-the-ssh-port-on-6416-bookworm/?do=findComment&comment=173106)
- [A Ephraim Gariguez por su ampliación para la raspi](https://forum.armbian.com/topic/30718-bug-cant-change-the-ssh-port-on-6416-bookworm/?do=findComment&comment=195815)


##### Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. 
También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad.
El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)

Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/store/soporte-profesional).