SSH 保持連線 (解決Broken pipe)
在使用SSH客戶端進行連線管理的時候如果長時間不輸入命令, 伺服器會自動斷開連線, 尤其是有的人使用SSH作為代理連線這樣的情況更是突出, 因此我在網上搜集了可以讓 SSH 保持連線的方法與大家分享
在伺服器端, 可以讓伺服器傳送“心跳”訊號測試提醒客戶端進行保持連線
通過修改 sshd 的配置檔案,能夠讓 SSH Server 傳送“心跳”訊號來維持持續連線,下面是設定的內容
開啟伺服器 /etc/ssh/sshd_config,我在最後增加一行
ClientAliveInterval 60 ClientAliveCountMax 1
這 樣,SSH Server 每 60 秒就會自動傳送一個訊號給 Client,而等待 Client 迴應,(注意:是伺服器發心跳訊號,不是客戶端,這個有別於一些 FTP Client 傳送的 KeepAlives 訊號哦~~~),如果客戶端沒有迴應,會記錄下來直到記錄數超過 ClientAliveCountMax 的值時,才會斷開連線。
如果你沒有伺服器端管理許可權, 在客戶端進行設定也可以實現
只要在/etc/ssh/ssh_config檔案里加兩個引數就行了
TCPKeepAlive yes ServerAliveInterval 300
前一個引數是說要保持連線,後一個引數表示每過5分鐘發一個數據包到伺服器表示“我還活著”
如果你沒有root許可權,修改或者建立~/.ssh/ssh_config也是可以的
在這種方法中, 如果你只想針對某一個ssh連線進行持續, 你可以將上述配置檔案複製一下進行修改然後在連線的時候使用 -F引數進行配置檔案的指定。 當然因為只需要修改兩個引數, 你也可以直接在連線命令中進行設定即:
$ ssh -o TCPKeepAlive=yes -o ServerAliveInterval=300 [email protected] -p xxxx
參考連結
ofollow,noindex" target="_blank">SSH 保持連線 (解決Broken pipe)