Linux

重新啟動時優雅地註銷所有連接的 ssh 使用者

  • October 9, 2014

當我重新啟動我的 Linux 伺服器(BusyBox Linux)時,所有正在進行的 ssh 客戶端連接都會進入卡住狀態,直到客戶端發生超時。沒有消息發送到 ssh 客戶端以產生“斷開連接”錯誤消息。這基本上使 ssh 客戶端看起來像是被凍結了。

我在 OpenSSH_5.8p2 版本中將 systemd 與此服務配置一起用於 sshd

[Unit]
Description=SSH Per-Connection Server
After=syslog.target

[Service]
ExecStart=/usr/sbin/sshd -i
SuccessExitStatus=0 255
StandardInput=socket

有沒有辦法為 sshd 配置優雅關閉?

我的(rhel)伺服器上的 sshd 會話可以通過以下方式辨識:

~# 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

殺死這些程序將立即關閉連接。因此,像這樣為 systemd 調整您的 sshd 服務文件:

[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

引用自:https://serverfault.com/questions/634374