Linux 下 SSH 遠程超時解決方案


Linux SSH 遠程超時解決方案

 

今天突然看到一個問題說是如何解決SSH遠程超時的問題。

找了一點資料。用於解決這個需求~

 

第一種:OpenSSH 配置文件設置

位於112行的 "ClientAliveInterval "以及位於113行的"ClientAliveCountMax"意義解釋如下:

  • ClientAliveInterval:即The length of time Server Sent Client ,服務器發給客戶端時間間隔。
  • ClientAliveCountMax:即Server Sent Client NOT REPLY,服務器發給客戶端,客戶端無響應。

倆行,簡單說就是:一個決定多久找你,一個決定找你次數。

注意要重啟SSH服務才能生效。如果上種你覺得不能理解或者不能體現水平。看下面這種~

 

第二種: Shell 腳本編寫實現永不超時

首先,欣賞這行代碼:

 

1#!/usr/bin/expect

告訴操作系統腳本里的代碼使用那一個shell來執行

2set timeout 60s

使用了set命令設置了超時時間為60s

3spawn ssh user@host

首先spawnexpect內部命令。作用就是給ssh新進程創建新expect,用來傳遞交互指令也實現了讓expect控制的用處!

4interact

交互命令,用來打開用戶與產生進程之間通信的命令。

5send

用於expect 腳本正在監控的進程生成輸入。send合並選項以發送給指定的產生的過程"-i",緩慢地發送"-s"(在串行通信中,為了不使緩沖區溢出)

關於expect:

export命令用於將shell變量輸出為環境變量,或者將shell函數輸出為環境變量,同時它也可以傳遞。說到底就是一個腳本語言,可以幫助系統管理員進行自動終端交互的好朋友.

 

第三種:環境變量臨時改變

同樣你也可以寫入$HOME/.profile文件,永久生效!

 

最后:

你來想想,我們還有第四種嗎?想想服務器要檢測客戶端還活着沒,客戶端能看些啥?

試試“ping”吧,也許你還有第四種~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM