Когда я перезагружаю свой Linux-сервер (BusyBox Linux), все текущие клиентские соединения ssh переходят в состояние зависания до тех пор, пока не истечет тайм-аут на стороне клиента. Нет сообщения, отправляемого клиенту ssh, чтобы выдать сообщение об ошибке «Отключить». Это в основном заставляет ssh-клиент выглядеть как будто что-то заморожено.
Я использую systemd с этой конфигурацией службы для sshd в версии OpenSSH_5.8p2
[Unit]
Description=SSH Per-Connection Server
After=syslog.target
[Service]
ExecStart=/usr/sbin/sshd -i
SuccessExitStatus=0 255
StandardInput=socket
Есть ли способ настроить плавное завершение работы sshd?
Сеансы sshd на моем (rhel) сервере могут быть идентифицированы по:
~# ps -ef |grep sshd:
root 12120 1 0 10:18 ? 00:00:00 sshd: sysope [priv]
sysope 12132 12120 0 10:18 ? 00:00:00 sshd: sysope@pts/2
уничтожение этих процессов немедленно закроет соединения. Поэтому адаптируйте свой служебный файл sshd для systemd следующим образом:
[Unit]
Description=SSH Per-Connection Server
After=syslog.target
[Service]
ExecStart=/usr/sbin/sshd -i
ExecStop=/usr/sbin/killall -9 sshd
SuccessExitStatus=0 255
StandardInput=socket