Cuando apaga o reinicia su sistema, systemdintenta detener todos los servicios lo más rápido posible. Eso implica derribar la red y terminar todos los procesos que aún están vivos, generalmente en ese orden. Entonces, cuando systemd mata los procesos SSH bifurcados que manejan sus sesiones SSH, la conexión de red ya está deshabilitada y no tienen forma de cerrar la conexión del cliente con gracia.
Su primer pensamiento podría ser simplemente matar todos los procesos SSH como el primer paso durante el apagado, y hay bastantes archivos de servicio systemd que hacen exactamente eso.
Pero hay, por supuesto, una solución más limpia (cómo se "supone" que hacer): systemd-logind.
systemd-logindrealiza un seguimiento de las sesiones de usuario activas (locales y SSH) y asigna todos los procesos generados dentro de ellos a los llamados "sectores". De esa manera, cuando el sistema se apaga, systemd puede SIGTERMAR todo lo que se encuentra dentro de los segmentos del usuario (que incluye el proceso SSH bifurcado que está administrando una sesión en particular) y luego continuar apagando los servicios y la red.
systemd-logindrequiere un módulo PAM para recibir notificaciones de nuevas sesiones de usuario y dbusdeberá usarlo loginctlpara verificar su estado, así que instale ambos:
apt-get install libpam-systemd dbus
Asegúrese de que /etc/ssh/sshd_configrealmente va a utilizar el módulo con UsePAM yes.