在自動化運維中,ssh有幾個引數非常重要:
ssh -o connecttimeout=2 -o connectionattempts=5 -o passwordauthentication=no -o stricthostkeychecking=no $ip -p$port "command"
1 connecttimeout=2 連線時超時時間,2秒
2 connectionattempts=5 連線失敗後重試次數,5次
3 passwordauthentication=no 是否使用密碼認證,(在遇到沒做信任關係時非常有用,不然會卡在那裡)
4 stricthostkeychecking=no 第一次登陸伺服器時自動拉取key檔案,(跟上面一樣,並且在第一次ssh登陸時,自動應答yes)
事情的起因是現場集群出現問題,發現最終是因為有個c程式需要system()執行乙個指令碼,而指令碼裡面有ssh連線到一台異常伺服器,導致ssh卡死5個多小時,從而導致呼叫system()的執行緒堵死5個多小時。通過上述的ssh超時引數就可以控制ssh卡死問題,保證各種情況下ssh都是不會卡死的。
不少指令碼都有自動跳過卡死的要求,特別是自動化運維指令碼不能卡死,否則一處卡死,就會導致很嚴重的運維事故。
ssh的常用引數
ssh 全稱 secure shell 是一種加密的網路協議。使用該協議的資料將被加密,如果在傳輸中間資料洩漏,也可以確保沒有人能讀取出有用資訊。要使用 ssh,目標機器應該安裝 ssh 服務端應用程式,因為 ssh 是基於客戶 服務模式的。當你想安全的遠端連線到主機,可中間的網路 比如網際網路 並...
ssh的常用引數
ssh 全稱 secure shell 是一種加密的網路協議。使用該協議的資料將被加密,如果在傳輸中間資料洩漏,也可以確保沒有人能讀取出有用資訊。要使用 ssh,目標機器應該安裝 ssh 服務端應用程式,因為 ssh 是基於客戶 服務模式的。當你想安全的遠端連線到主機,可中間的網路 比如網際網路 並...
ssh的常用引數
ssh常用引數 ssh是什麼?ssh 全稱 secure shell 是一種加密的網路協議。使用該協議的資料將被加密,如果在傳輸中間資料洩漏,也可以確保沒有人能讀取出有用資訊。要使用 ssh,目標機器應該安裝 ssh 服務端應用程式,因為 ssh 是基於客戶 服務模式的。當你想安全的遠端連線到主機,...