Skip to main content

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 o un Linux From Scratch.

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

Ubuntu 24 : /etc/systemd/system/ssh.service.requires

Editemos /etc/systemd/system/ssh.service.requires/ssh.socket

Ubuntu 24 : /etc/systemd/system/ssh.service.requires : Editar

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

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

systemctl status ssh.socket

Si muestra "inactive (dead)": Usas el método tradicional

En este caso solo necesitas:

# 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)

# 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:

[Socket]
ListenStream=
ListenStream=2222
# 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

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

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.