Quando você desliga ou reinicializa o sistema, systemd tenta interromper todos os serviços o mais rápido possível. Isso envolve derrubar a rede e encerrar todos os processos que ainda estão vivos - geralmente nessa ordem. Então, quando o systemd mata os processos SSH bifurcados que estão manipulando suas sessões SSH, a conexão de rede já está desabilitada e eles não têm como fechar a conexão do cliente normalmente.
Seu primeiro pensamento pode ser simplesmente matar todos os processos SSH como o primeiro passo durante o desligamento, e existem alguns arquivos de serviço systemd que fazem exatamente isso.
Mas é claro que há uma solução mais simples (como é "suposto" ser feito): systemd-logind .
systemd-logind mantém o controle das sessões ativas do usuário (locais e SSH) e atribui todos os processos gerados dentro eles para chamados "fatias". Dessa forma, quando o sistema é desligado, o systemd pode apenas SIGTERM tudo dentro das fatias do usuário (que inclui o processo SSH bifurcado que está entregando uma sessão específica) e depois continuar a desligar os serviços e a rede.
systemd-logind requer um módulo PAM para ser notificado sobre novas sessões de usuário e você precisará de dbus para usar loginctl para verificar seu status. Portanto, instale os dois:
apt-get install libpam-systemd dbus
Certifique-se de que seu /etc/ssh/sshd_config , na verdade, usará o módulo com UsePAM yes .