如何在 Linux 中增加 SSH 連線超時時間


安全外殼 (SSH) 是一種廣泛用於安全訪問遠端系統的協議。它用於在不安全的網路上建立兩個計算機之間安全且加密的連線。建立 SSH 連線時,存在一個超時值,該值確定連線在關閉之前可以空閒多長時間。這稱為 SSH 連線超時。

SSH 連線超時對於防止未經授權的訪問和降低安全漏洞風險至關重要。但是,當您需要在遠端系統上工作較長時間時,這可能會很麻煩。在本文中,我們將討論如何在 Linux 中增加 SSH 連線超時時間。

瞭解 SSH 連線超時

SSH 連線超時是指 SSH 伺服器在終止連線之前的不活動時間段。預設情況下,大多數 SSH 伺服器的連線超時時間為 15 分鐘。這意味著,如果您在超過 15 分鐘的時間內未與遠端系統互動,則連線將被終止。

此超時對於防止未經授權的訪問和降低安全漏洞風險至關重要。但是,在某些情況下,可能需要增加超時時間段。例如,當處理需要長時間不活動時間的遠端系統時,例如下載大型檔案或執行長時間程序。

增加 SSH 連線超時時間

要增加 Linux 中的 SSH 連線超時時間,您需要修改遠端系統上的 sshd_config 檔案。此檔案包含 SSH 伺服器的配置設定。以下是增加 SSH 連線超時的步驟:

步驟 1:連線到遠端系統

要修改 sshd_config 檔案,您需要登入到遠端系統。您可以使用本地系統上的 SSH 客戶端執行此操作。開啟終端並輸入以下命令:

ssh username@remote-system-ip

將“username”替換為您用於登入遠端系統的使用者名稱,並將“remote-system-ip”替換為遠端系統的 IP 地址。

步驟 2:修改 sshd_config 檔案

登入到遠端系統後,您需要修改 sshd_config 檔案。使用文字編輯器(如 nano 或 vi)開啟該檔案。例如:

sudo nano /etc/ssh/sshd_config

步驟 3:查詢 ClientAliveInterval 和 ClientAliveCountMax 引數

在 sshd_config 檔案中,找到以下引數:

ClientAliveInterval
ClientAliveCountMax

ClientAliveInterval 引數指定伺服器在向客戶端傳送保持活動訊息之前的時間間隔(以秒為單位)。ClientAliveCountMax 引數指定在伺服器終止連線之前,可以在沒有客戶端響應的情況下發送的保持活動訊息的數量。

步驟 4:增加 ClientAliveInterval 和 ClientAliveCountMax 值

要增加 SSH 連線超時時間,您需要增加 ClientAliveInterval 和 ClientAliveCountMax 引數的值。例如,要將超時時間增加到 60 分鐘,請將值設定為如下所示:

ClientAliveInterval 600
ClientAliveCountMax 6

ClientAliveInterval 設定為 600 秒(60 分鐘),ClientAliveCountMax 設定為 6。這意味著伺服器將每 10 分鐘傳送一次保持活動訊息,並且連線將在 1 小時不活動後終止。

步驟 5:儲存並關閉 sshd_config 檔案

修改 sshd_config 檔案後,儲存更改並關閉檔案。

步驟 6:重新啟動 SSH 伺服器

要應用更改,您需要在遠端系統上重新啟動 SSH 伺服器。您可以透過輸入以下命令來執行此操作:

sudo service ssh restart

測試 SSH 連線超時

要確保對 SSH 連線超時所做的更改有效,您需要測試 SSH 連線。您可以透過建立到遠端系統的 SSH 連線並將其保持空閒指定超時時間段來執行此操作。

例如,如果您已將 SSH 連線超時時間設定為 60 分鐘,請建立到遠端系統的 SSH 連線並將其保持空閒 1 小時。如果連線在 1 小時後仍然處於活動狀態,則對 SSH 連線超時所做的更改已正確生效。

其他提示和注意事項

在 Linux 中增加 SSH 連線超時時間時,請記住以下其他提示和注意事項:

在增加超時值時要謹慎。增加 SSH 連線超時時間可能會增加安全漏洞風險,尤其是在遠端系統可從網際網路訪問的情況下。建議僅在必要時增加超時值,並將增加幅度限制在合理範圍內。

測試連線超時值。對 SSH 連線超時進行更改後,務必測試新值是否按預期工作。建立到遠端系統的 SSH 連線並將其保持空閒指定超時時間段,以確認連線是否已正確終止。

考慮使用其他方法保持 SSH 連線處於活動狀態。如果您不想增加 SSH 連線超時值,則可以使用其他方法保持 SSH 連線處於活動狀態。例如,您可以在後臺執行一個每隔幾分鐘生成輸出的命令,或使用 SSH 隧道。

確保遵循 SSH 安全的最佳實踐。SSH 是一個強大的遠端訪問工具,但如果配置不當,也可能成為潛在的安全風險。為了確保 SSH 連線的安全,請確保遵循最佳實踐,例如停用 root 登入、使用強密碼和限制對受信任使用者的訪問。

增加 SSH 連線超時的替代方法

除了修改 sshd_config 檔案外,還有其他方法可以增加 SSH 連線超時時間。以下是一些替代方法:

使用 ServerAliveInterval 和 ServerAliveCountMax 選項

您可以在 SSH 客戶端配置檔案中使用 ServerAliveInterval 和 ServerAliveCountMax 選項來保持 SSH 連線處於活動狀態。這些選項的工作方式類似於 sshd_config 檔案中的 ClientAliveInterval 和 ClientAliveCountMax 引數。要使用這些選項,請將以下行新增到您的 SSH 客戶端配置檔案(通常位於 ~/.ssh/config 中):

Host *
   ServerAliveInterval 600
   ServerAliveCountMax 6

在此示例中,ServerAliveInterval 設定為 600 秒(10 分鐘),ServerAliveCountMax 設定為 6。這意味著客戶端將每 10 分鐘向伺服器傳送一次保持活動訊息,並且連線將在 1 小時不活動後終止。

使用 TCPKeepAlive 選項

TCPKeepAlive 選項也可用於保持 SSH 連線處於活動狀態。此選項定期向伺服器傳送 TCP 保持活動資料包,以檢查連線是否仍然有效。要使用此選項,請將以下行新增到遠端系統上的 sshd_config 檔案中:

TCPKeepAlive yes

此選項在大多數 SSH 伺服器上預設啟用,並且可以與 ClientAliveInterval 和 ClientAliveCountMax 引數結合使用以增加 SSH 連線超時時間。

使用 SSH ControlMaster 選項

SSH ControlMaster 選項允許您為後續連線到同一伺服器的連線重用現有的 SSH 連線。這有助於減少建立新 SSH 連線所需的時間,並保持連線處於活動狀態。要使用此選項,請將以下行新增到您的 SSH 客戶端配置檔案中:

Host *
   ControlMaster auto
   ControlPath ~/.ssh/%r@%h:%p
   ControlPersist 600

在此示例中,ControlMaster 選項設定為 auto,這意味著 SSH 在建立新 SSH 連線時將自動設定主連線。ControlPath 選項指定用於主連線和從連線之間通訊的控制套接字的路徑,ControlPersist 選項設定在最後一個從連線關閉後保持主連線活動的時間(以秒為單位)。

結論

在 Linux 中增加 SSH 連線超時時間是一個簡單的過程,可以透過修改遠端系統上的 sshd_config 檔案來完成。透過增加超時時間,您可以在遠端系統上工作較長時間,而無需擔心連線因不活動而終止。但是,請務必記住,增加 SSH 連線超時時間可能會增加安全漏洞風險,因此應僅在必要時進行。

更新於: 2023 年 4 月 28 日

43K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告