realizar cambios en el archivo sshd_config sin reiniciar el servidor

33

Cambié la configuración en el archivo

/etc/ssh/sshd_config

pero tuvo efecto solo después de reiniciar el servidor. ¿Cómo realizar cambios sin reiniciar el servidor?

Maxim Yefremov
fuente
Puede usar sudo service ssh restartpara reiniciar el servicio para que surta efecto. Pero recuerde que si está conectado a través de SSH, su sesión finalizará.
AzkerM

Respuestas:

39

Simplemente reinicie el servicio sshd:

sudo service sshd restart

o:

sudo /etc/init.d/sshd restart
Pathin
fuente
66
¿Qué pasa si estoy en una conexión ssh?
Anwar
77
nada ... rebotar sshd es lo suficientemente inteligente como para permitir que las conexiones ssh existentes continúen alegremente sin disminuir
Scott Stensland
44
No recomiendo ejecutar nada en /etc/init.d directamente. Use el comando "servicio". A la mayoría de los servicios no les importará, pero hay algunos que sí lo hacen porque se ven afectados por las variables de entorno. El "servicio" garantiza la limpieza del medio ambiente. Por ejemplo, ejecutar "sudo" deja la variable de entorno HOME en su directorio de inicio no root.
Chris Cogdon
5
sudo service ssh restart

No lo haré. Necesita reiniciar sshd, no ssh:

sudo service sshd restart
William Dowling
fuente
3
Depende de la configuración del sistema. En Lubuntu 14.04 sudo service ssh restartfunciona muy bien, mientras que sudo service sshd restartinforma "sshd: servicio no reconocido". Aunque no estoy seguro de por qué esto varía ...
schulwitz
3

Hay una forma aún menos intrusiva de hacer esto, sin reiniciar el servicio SSH.

De man sshd:

sshd vuelve a leer su archivo de configuración cuando recibe una señal de suspensión, SIGHUP, ejecutándose con el nombre y las opciones con las que se inició, por ejemplo, / usr / sbin / sshd.

Por lo tanto, puede usar un comando como el siguiente para enviar SIGHUP al proceso del servidor SSH:

sudo kill -SIGHUP $(pgrep -f "sshd -D")

La pgrep -f "sshd -D"parte devolverá solo el PID del proceso sshd daemon que escucha nuevas conexiones, ya que es probable que haya otros PID para cada sesión activa que no necesiten la señal.

Steven K
fuente
2
Esta es la forma más segura ( stribika.github.io/2015/01/04/secure-secure-shell.html ) de recargar la configuración: "Tenga mucho cuidado al configurar SSH en un host remoto. Mantenga siempre una sesión activa, nunca reinicie sshd. En su lugar, puede enviar la señal SIGHUP para volver a cargar la configuración sin matar su sesión. Puede ser aún más cuidadoso al iniciar una nueva instancia de sshd en un puerto diferente y probarlo ".
Adriano Lucas
¿Hay alguna diferencia significativa para sudo pkill -HUP sshd?
AdamKalisz
@ Adam Solo desea HUP el proceso de escucha, no los clientes activos que también son sshdprocesos. sudo pkill -HUP -f "sshd -D"es una alternativa tentadora, pero luego pkill señala a su propio sudopadre ya que su línea de comando completa coincide con su propio patrón de búsqueda. Puedes crear un patrón que no coincida ... -f "sshd -[D], pero que ofusca un poco las cosas. Creo que el método pgrep es más fácil para los alumnos de entender.
Steven K
2

Como comprobación de raíz

service --status-all | grep ssh

No tenía sshdservicio, pero tenía sshservicio en el servidor Ubuntu. Luego

service ssh restart
Yaroslav Nikitenko
fuente
2

Para sistemas Systemd: Ubuntu predeterminado

sudo systemctl reload sshd.service

o

 sudo systemctl reload sshd

o

 sudo /bin/systemctl reload sshd.service

Para sistemas Sysvinit

sudo service sshd reload

o

sudo /etc/init.d/sshd reload
abu_bua
fuente
0

Recargar puede ser una mejor alternativa para reiniciar

sudo service sshd reload

debajo del capó envía una HUPseñal al proceso sshd daemon casi de la misma manera en que Steven K ya respondió . La diferencia es que esta variante usa la killprocfunción en lugar del killcomando directamente para enviar la señal de una manera aún más precisa (para reducir los posibles errores de enviar señales a procesos incorrectos). La configuración se vuelve a leer sin reiniciar / detener el servicio.

Por supuesto, vale la pena descubrir cómo se llama exactamente SSH Deamon, como lo comentaron otros.

Alexander Ites
fuente