1. 程式人生 > >linux ssh 持久連線

linux ssh 持久連線

用客戶端連線linux伺服器,經常伺服器經常踢開使用者,很麻煩,為了一直保持連線,最少白天工作時一直連線。

  1. 在伺服器端修改;
  2. 在客戶端修改,所謂的客戶端是指本身也是linux機器,可能是另一臺server,或者是linux本地機。
  3. 對於windows系統下,修改遠端登入軟體的引數配置。

一、配置服務端持久連線

編輯伺服器 /etc/ssh/sshd_config,最後增加

#server每隔60秒傳送一次請求給client,然後client響應,從而保持連線
ClientAliveInterval 60  

#server發出請求後,客戶端沒有響應得次數達到3,就自動斷開連線,正常情況下,client不會不響應。
ClientAliveCountMax 3

修改後需要重啟sshd服務

二、配置客戶端持久連線

實際上就是說,在客戶端這裡修改ssh的配置檔案或者是(終端工具的session的配置),讓ssh會主動定時傳送訊息,這樣使得連線不會一段時間不操作後中斷。

下面是設定ssh配置檔案的方式來配置ssh持久連線

#vim /etc/ssh/ssh_config
(注意不是/etc/ssh/sshd_config檔案,這個是server的)
在後面新增

#client每隔60秒傳送一次請求給server,然後server響應,從而保持連線
ServerAliveInterval 60 

#client發出請求後,伺服器端沒有響應得次數達到3,就自動斷開連線,正常情況下,server不會不響應
ServerAliveCountMax 3  

這表示要讓所有的ssh連線自動加上此屬性。

如果要指定服務端,如下:

使用-o的引數ServerAliveInterval來設定一個防止超時的時間
ssh -o ServerAliveInterval=60 IP地址 

譬如 ssh -o ServerAliveInterval=60 [email protected]

三、對於windows系統的軟體

使用SecureCRT連線遠端伺服器,在會話(session)選項 -> 終端設定中勾選"傳送協議 NO-OP"。
使用putty連線遠端伺服器,找到Connection -> Seconds between keepalives ( 0 to turn off ), 預設為0,改為60。