mac ssh连接自动断开问题解决 iterm2

在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

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站大部分内容收集于互联网,如果有侵权内容、不妥之处,请联系删除。敬请谅解!

  关于博主【WANG-FEiHU】

Duplicate
-----------Complicate
--------------------------Appreciate
----------------------------------------[Fate]
-----------------------------------------------Elevate

三人行 有吾师

-------------花有重开日 梦无止境时-------------

  分类目录

  monitor(TD)

只有脚踏实地的人,才能够说:路,就在我的脚下。

无论你选择做什么,追求完美的程度决定你成就的高度。

这个世界最脆弱的是生命,身体健康,很重要。

技术就是一层窗户纸,捅破它吧。

上帝说:你要什么便取什么,但是要付出相当的代价。

现在站在什么地方不重要,重要的是你往什么方向移动。