SSH 連線如何變成非活動狀態?

SSH 連線如何變成非活動狀態?

我已經設定了 SSH 連線來在遠端伺服器上運行程式。該程式每 10 秒在終端上列印一次調試資訊。如果我讓 SSH 視窗長時間開啟(例如 10 小時),SSH 連線是否會變得不活躍? SSH 會話中的活動如何定義?我應該每 x 秒鍵入/運行命令以保持會話處於活動狀態嗎?

答案1

您不需要做任何特殊的事情,SSH 不會因為不活動而終止連線。所以沒有定義不活動期之內SSH。

然而,您和伺服器之間的網路路由上的其中一個設備可能會丟失路由,並且對於該活動,從一側通常就足夠了,但並非總是如此(有「到達確認包」、確認、從伺服器返回伺服器)使用 TCP 時的客戶端)。
來自雙方的流量並不能保證持續的連接,如果您有 DSL 數據機並且您的提供者決定您每天獲得一個新的 IP 位址,則連接將會中斷。

您可以讓您的客戶端定期發送一些資料包,方法是插入

ServerAliveInterval 5

除了每 10 秒來自伺服器的流量之外,每 5 秒還有一些客戶端到伺服器的流量/etc/ssh/ssh_config~/.ssh/config

DSL 數據機重置連接的更簡單的「解決方案」是運行伺服器端軟體tmux或者screen:如果連線斷開,您只需再次 SSH 到伺服器,發出tmux attachscreen -r即可繼續查看不間斷的伺服器程式。

如果您不太擔心失去連接,而是擔心失去連接會導致伺服器程式停止,那麼使用tmux/特別有用。screen為此,您也可以將原始程式的輸出重新導向到 file 並使用tail -f,但這不允許您輕鬆地與伺服器程式互動(如果有必要的話)。tmuxscreen(以其基本形式)易於使用,但存在一些副作用,例如無法使用圖形終端上的滑桿向後滾動(您必須使用鍵盤快捷鍵讓伺服器在其緩衝區中向後滾動)那)。

針對中斷連接的設備,更靈活的解決方案是使用mosh。這使用 SSH 交換一些秘密訊息,然後即使一個或兩個 IP 位址發生變化也允許重新連接。然而,這更難以設定和開始工作。

在您的情況下,我會從使用開始tmux,並在連接確實停用時手動重新連接。

答案2

另外,使用 SCREEN 指令確實很有幫助。這樣您就可以執行任何命令,而不必擔心您的 ssh 連線。

相關內容