設定 ClientAliveInterval 後如何保持登入狀態?

設定 ClientAliveInterval 後如何保持登入狀態?

出於合規性原因,我的所有 Debian 伺服器都使用以下配置設定為 15 分鐘後逾時/etc/ssh/sshd_config

ClientAliveInterval 900
ClientAliveCountMax 0

當然,這使得在這些伺服器上進行操作變得煩人且危險,因為任何空閒時間都可能會中斷連線。

我正在尋找一個簡單的命令,可以在不修改現有配置的情況下保持客戶端會話處於活動狀態。

答案1

如果您正在關注安全技術實施指南它目前指出

ClientAliveInterval                        600
ClientAliveCountMax                        0

這將斷開連接並且閒置的10 分鐘後,ssh 會話(即 putty 視窗)。

在 RHEL 7 中,從 rhel-server-7.9-x86_64-dvd.iso 或 centos 進行全新安裝時,這兩項的預設值分別為和03這會導致 ssh 會話永遠不會自動終止。

詳細資訊請參閱:https://stackoverflow.com/questions/71174746/clientaliveinterval-is-not- opening-the-idle-connection

最相關的:這些不適用於使用者空閒的情況,正如手冊頁摘錄所述,它們適用於無回應的 SSH 用戶端。如果用戶端程式凍結或連線斷開,用戶端將無回應。客戶端不應該僅僅因為人類用戶離開鍵盤而沒有回應:ssh 用戶端仍然會接收從伺服器發送的資料包。

它在客戶端,在putty.exe中, 在下面聯繫用於控制連線的選項keepalive 之間的秒數(0 表示關閉)ClientAliveInterval預設sshd_config為0 。

如果不使用 Windows 中的 putty.exe,並使用另一個 linux 機器中的 ssh,那麼客戶端 ssh 是透過配置的,/etc/ssh/ssh_config但是我知道其中沒有相應的項目來經常發送一個 keepalive 封包。

注意:在 Windows 中使用 putty.exe,其預設 keepalive 為 0,並且 ssh 伺服器設定了 ClientAliveInterval,即使開啟vi也會斷開連接,從而導致遺失的將透過其 .swp 檔案恢復的檔案vi。或者,如果運行一個程式不斷地吐出輸出,那是來自伺服器端的,並且ssh 連接將被終止,從而殺死你的工作......必須有來自客戶端的某些東西(按鍵)來計數並導致活著。因此,使用 Windows 中的 putty.exe,這是一個相當簡單的修復,對於從 linux 到 linux 的 ssh,我不知道如何在 ssh 會話中客戶端不按鍵盤按鍵的情況下防止斷開連接。

更新:從 linux 到 linux 似乎你需要使用ssh -o和各種選項。更多詳情請見:tcp-keepalive 在 ssh 中如何運作?

例如: ssh -o ServerAliveInterval=5 -o ServerAliveCountMax=1

有點像 /etc/yum.conf 有 gpgcheck=1,而且只是做百勝安裝--nogpgcheck :)

答案2

我認為您通過設定禁用了配置最大客戶端存活數0。所以將其設為 1 應該可以完成工作。

最大客戶端存活數

設定在 sshd(8) 沒有從客戶端接收到任何訊息的情況下可以發送的客戶端活動訊息的數量。如果在發送客戶端活動訊息時達到此閾值,sshd 將斷開客戶端連接,終止會話。需要注意的是,客戶端活動訊息的使用與 TCPKeepAlive 有很大不同。客戶端活動訊息透過加密通道發送,因此不會被欺騙。 TCPKeepAlive 啟用的 TCP keepalive 選項是可欺騙的。當客戶端或伺服器依賴了解連線何時變成非活動狀態時,客戶端活動機制就非常有價值。

預設值為 3。如果ClientAliveInterval 設定為 15,並且 ClientAliveCountMax 保留為預設值,無回應的 SSH 用戶端將在大約45秒

但我不得不承認我同意@TienPhan。最好不要將配置放在伺服器上。但這仍然取決於用例。如果所有使用者都應以相同的方式處理,則可以選擇伺服器端配置。

答案3

事實上,我們不需要在伺服器端設定間隔時間。更多的東西不會讓你快樂。

您可以使用「ServerAliveInterval」並將其新增至 ~/.ssh/config 檔案中,如下所示:

host *
        ServerAliveInterval 120

注意:120是秒,你可以改變你想要的。

然後它會影響該文件中的所有伺服器。或者您可以為單獨的伺服器進行設定。

相關內容