Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux SSH 連線逾時自動斷開?教你輕鬆設定保持長連線

編輯:關於 Linux

在 Linux 系統管理中,SSH 連線若長時間閒置便會自動斷開,這對於需要持續作業的開發者或系統管理員相當困擾。其實只要調整 SSH 服務端的兩個參數 ClientAliveInterval 與 ClientAliveCountMax,即可讓連線保持存活,不再因逾時而中斷。

核心原理

ClientAliveInterval:指定伺服器端向客戶端發送心跳請求的時間間隔(秒)。預設為 0(不發送)。設為 60 即代表每 60 秒發送一次請求,客戶端回應後即可維持長連線。值得注意的是,這是由「伺服器主動發起」保持連線,而非客戶端(如 PuTTY、SecureCRT 等)發起。

ClientAliveCountMax:伺服器發送請求後,客戶端未回應的最大次數。達到此值則自動斷開連線。預設值 3 通常足夠,正常情況下客戶端不會不回應。

操作步驟

1. 查看目前設定

grep "ClientAlive" /etc/ssh/sshd_config
# 輸出範例:
# ClientAliveInterval 0
# ClientAliveCountMax 3

2. 備份原始設定檔

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

3. 修改設定檔

建議使用 sed 直接取代,或手動編輯 /etc/ssh/sshd_config:

sed -i "s/#ClientAliveInterval 0/ClientAliveInterval 60/g" /etc/ssh/sshd_config
sed -i "s/#ClientAliveCountMax 3/ClientAliveCountMax 3/g" /etc/ssh/sshd_config

若檔案中已有該行但被註解,上述指令可生效;若無該行,請手動新增:

ClientAliveInterval 60
ClientAliveCountMax 3

4. 驗證修改結果

grep "ClientAlive" /etc/ssh/sshd_config
diff /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

5. 重啟 SSH 服務生效

systemctl restart sshd
# 或舊版系統:
service sshd restart

SSH 設定修改對比圖

補充說明

  • 設定完成後,SSH 連線將不再因閒置逾時而自動斷開。
  • 若日後需恢復自動斷開,將 ClientAliveInterval 改回 0 並重啟服務即可。
  • 此法適用於大多數 Linux 發行版(CentOS、Ubuntu、Debian、RHEL 等)。
Copyright © Windows教程網 All Rights Reserved