SSH 閒置時間過長而斷開

莫名私下裡發表於2019-12-26
  • 方法一、
    //  修改/etc/ssh/sshd_config配置檔案,找到ClientAliveCountMax(單位為分鐘)修改你想要的值,
    //   執行
    $ service sshd reload 
  • 方法二、
    //  找到所在使用者的.ssh目錄,如root使用者該目錄在:
    $  /root/.ssh/
    //  在該目錄建立config檔案
    $ vi /root/.ssh/config
    //  加入下面一句:
    ServerAliveInterval 60
    //  儲存退出,重新開啟root使用者的shell,則再ssh遠端伺服器的時候,
    不會因為長時間操作斷開。應該是加入這句之後,ssh客戶端會每隔一
    段時間自動與ssh伺服器通訊一次,所以長時間操作不會斷開。
  • 方法三、
    // 修改/etc/profile配置檔案
    $ vi /etc/profile
    增加:TMOUT=1800
    這樣30分鐘沒操作就自動LOGOUT
  • 方法四、
    // 利用expect 模擬鍵盤動作,在閒置時間之內模擬地給個鍵盤響應,將下列程式碼儲存為xxx,然後用expect執行
    #!/usr/bin/expect  
    set timeout 60  
    spawn ssh user@host   
        interact {          
                timeout 300 {send "\x20"}  
        } 
    expect xxx
    接著按提示輸入密碼就可以了,這樣每隔300秒就會自動打一個空格(\x20),具體的時間間隔可以根據具體情況設定。
  • 方法五、
    windows下通過工具連線,可以設定為
    secureCRT:選項---終端---反空閒 中設定每隔多少秒傳送一個字串,或者是NO-OP協議包
    putty:putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 預設為0, 改為300.
    Mac 設定 profiles -> session -> "when idle,send ASCII code " 選中 修改為 30 seconds

相關文章