Mac下ssh連接遠程服務器時自動斷開問題


在mac下使用securecrt通過ssh連接遠程服務器時,總會一段時間沒有動作后,ssh被自動斷開。在windows下用xmanager貌似沒有遇到過這個問題。

在網上找了解決方法如下:
客戶端配置:
Global.ini文件中將D:"Disconnect After Resume Timeout"=00000000改為D:"Disconnect After Resume Timeout"=FFFFFFFF
securecrt界面上配置:send string \n every 600 seconds或send protocol no-op every 600 seconds
服務端配置:
/etc/profile文件中配置TMOUT=0
然而在securecrt中試驗發現無效,可能的原因有:多人反應securecrt的mac版有這個問題,mac的wifi斷開導致(wifi斷開的原因有多種,例如離開wifi的區域,mac休眠自動斷開wifi等)。

 

在網上搜了一遍mac下流行的ssh工具,有securecrt、iterm2、telnet lite等,下下來試了一下,iterm2的界面和體驗最好,於是決定放棄securecrt,改用iterm2。
在iterm2中仍然發現了ssh自動斷開的問題,於是又開始了漫長的尋找方法和試驗的過程。
網上有人給出解決方法是:
在客戶端:~/.ssh/config文件(若沒有則新建)中添加如下內容:
Host *
     ServerAliveInterval 60
意思是每60s發送一次以保持連接。
注意:在ssh客戶端改,不要在服務端改(ClientAliveInterval 60, ClientAliveCountMax 100),不安全


按照這個方法在iterm2和自帶終端上試驗
1. 服務端設置TMOUT=0,客戶端設置ServerAliveInterval 60,不會斷
    服務端設置TMOUT=900,客戶端設置ServerAliveInterval 60,900s后立即斷,並有提示斷開
2. 服務端設置TMOUT=0,客戶端不配ServerAliveInterval 60,半小時后終端沒反應,也沒提示斷開
    服務端設置TMOUT=900,客戶端不配ServerAliveInterval 60,半小時后終端沒反應,也沒提示斷開

 

於是最終方案:
1. 使用自帶終端或iterm2,iterm2界面和用戶體驗更好一點
2. 服務端:/etc/profile文件中配置TMOUT=0,source /etc/profile生效,重新登錄用戶
3. 客戶端:~/.ssh/config文件中配置
Host *
     ServerAliveInterval 60

 

參考:
https://ztgame.shenyu.me/linux/ssh-config.html
http://bluebiu.com/blog/iterm2-ssh-session-idle.html
http://bluebiu.com/blog/linux-ssh-session-alive.html


免責聲明!

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



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