Reiniciar SSH en Ubuntu es un comando sencillo. El problema es que a menudo afecta al mismo servicio que permite acceder al servidor.
En una máquina local, el riesgo es bajo. En un VPS o servidor remoto, prefiero comprobar un par de cosas antes de pulsar Intro. Una mala configuración, un puerto olvidado en el cortafuegos o confusión entre ssh Y sshdy puede que te encuentres buscando una consola de respaldo.

El comando para reiniciar SSH en Ubuntu
En Ubuntu y Debian, el servicio OpenSSH del lado del servidor se suele llamar sshPor lo tanto, la orden más directa es:
sudo systemctl restart ssh
Inmediatamente después, verifique que el servicio haya vuelto a un estado activo:
sudo systemctl status ssh --no-pager
También puede realizar una comprobación más breve, lo cual resulta conveniente en un guion o en una sesión rápida:
systemctl está activo ssh
Si la respuesta es activoEl servicio está funcionando. Si obtiene fallido, inactivo o si se produce un error de unidad no encontrada, no cierre su sesión actual antes de comprender el motivo.
Pruebe la configuración antes de apagar el servicio.
Si modificaste /etc/ssh/sshd_configPrimero, prueba la configuración. Esta es una comprobación que siempre realizo antes de reiniciar un sistema SSH remoto:
sudo /usr/sbin/sshd -t
Si el comando no devuelve nada, es una buena señal. Si muestra un error, corrija el archivo antes de reiniciar SSH. Para una prueba explícita en el archivo principal:
sudo /usr/sbin/sshd -t -f /etc/ssh/sshd_config
Esta prueba no garantiza que su firewall o proveedor de nube admita el puerto SSH, pero sí evita que reinicie un demonio con una configuración no válida. Es sencilla, rápida y puede evitarle tener que intervenir mediante la línea de comandos.
Reiniciar o recargar: ¿cuál elegir?
Para aplicar un cambio de configuración SSH, no siempre es necesario reiniciar completamente el sistema. Cuando el servicio lo permite, una recarga resulta menos perjudicial:
sudo systemctl reload ssh
En la práctica, yo uso recargar para un cambio de configuración limpio, después de un sshd -t Validado. Yo uso Reanudar cuando el servicio está bloqueado, después de una actualización de OpenSSH o cuando quiero volver a empezar desde un estado limpio.
Para ver qué información tiene systemd sobre tu máquina, este comando es útil:
systemctl list-unit-files 'ssh*'
En algunas instalaciones, también podría encontrar ssh.socketEn este caso, compruebe su estado antes de tocar nada:
sudo systemctl status ssh.socket --no-pager
Para entender los comandos de systemd sin confundir service, reload y restart, también puede volver a leer nuestra guía sobre Comandos útiles de systemctl antes de un reinicio aleatorio.
Verifique que el puerto SSH siga en escucha.
El servicio puede estar activo, pero SSH podría estar escuchando en un puerto diferente al que estás usando. En un sistema Ubuntu típico, el puerto suele ser el veintidós, pero esta no es una regla absoluta.
Para comprobar qué puertos están a la escucha:
sudo ss -ltnp | grep ':22'
Si has cambiado el puerto en la configuración SSH, pregúntale a OpenSSH qué configuración está aplicando realmente:
sudo /usr/sbin/sshd -T | grep '^port'
Para profundizar en este tema, consulte el artículo sobre netstat, ss y puertos abiertos en Linux Proporciona un método más completo.
Considere también su cortafuegos local. Con UFW, la verificación es inmediata:
sudo ufw status verbose
Si SSH está escuchando en el puerto 2222, pero el cortafuegos solo permite el puerto 22, el servicio puede estar completamente operativo pero ser inaccesible desde el exterior. Lo mismo ocurre si su proveedor de alojamiento impone un cortafuegos o un grupo de seguridad en la red.
Si el reinicio falla, revise los registros.
Si systemctl status ssh indica un error; comience por revisar los registros del servicio:
sudo journalctl -u ssh -b --no-pager | size -50
También puedes seguir los mensajes en directo durante un reintento:
sudo journalctl -u ssh -f
Los errores más frecuentes son bastante obvios: opción desconocida en sshd_config, puerto ya en uso, clave de host faltante, permiso de archivo incorrecto o directiva colocada en el lugar incorrecto.
Si necesita ampliar la cobertura de su red después de un cambio de red o un reinicio del servidor, la guía sobre journalctl y los registros del último arranque de Linux Te ayudará a solucionar los errores sin tener que leer todo el registro del sistema.
Precauciones a tomar en un servidor remoto
Si está conectado mediante SSH a la máquina que va a modificar, mantenga la sesión abierta. Incluso puede abrir una segunda sesión antes de que se reinicie el servicio.
ssh usuario@dirección-del-servidor
Tras reiniciar, intenta establecer una nueva conexión desde otro terminal. Si la nueva conexión funciona, puedes cerrar la anterior. Si falla, la sesión anterior aún podría salvarte.
En un servidor de producción, verifique también que tiene una consola de respaldo con su proveedor de alojamiento. Esto es particularmente importante si está modificando simultáneamente el puerto SSH, UFW, una dirección IP estática o la configuración de red. Para esto último, consulte el artículo sobre la dirección IP fija en Debian Ofrece los mismos reflejos de cautela en el lado de la red.
Cuándo reinstalar OpenSSH en lugar de reiniciar
Un reinicio es suficiente si el servicio está instalado, la configuración es válida y el problema es temporal. Sin embargo, si la unidad servicio ssh Si no existe, o si falta el paquete del servidor OpenSSH, o si el servidor se ha limpiado demasiado a fondo, tendrá que iniciar la instalación de nuevo.
En este caso, no fuerce reinicios en un bucle. Primero, verifique el paquete:
dpkg -l | grep openssh-server
Si no se informa de nada, repita el procedimiento correspondiente: reinstalar SSH correctamente en UbuntuReiniciar un servicio que no está en funcionamiento no solucionará nada.
Mi método rápido antes de validar
Cuando necesito usar SSH en Ubuntu, lo hago de forma sencilla: pruebo la configuración, recargo si es posible, reinicio si es necesario y luego compruebo el puerto, el cortafuegos y una nueva conexión.
sudo /usr/sbin/sshd -t
sudo systemctl reload ssh
sudo systemctl status ssh --no-pager
sudo ss -ltnp | grep ':22'
sudo ufw status verbose
Si trabajas de forma remota, no cierres la sesión activa hasta que hayas probado una nueva conexión SSH. Este es probablemente el consejo menos drástico del artículo, pero es el que evita las sorpresas más desagradables.
Las páginas oficiales de Ubuntu en Servidor OpenSSH, documentación sistemactllas páginas man sshd Y sshd_configasí como la documentación UFWEstos son buenos puntos de partida si necesita documentar un procedimiento de servidor.