在macbook中使用终端, 通过ssh连接上远程服務器后, 隔一段时间没有数据传递时会自动断开而表象就是终端会卡着无响应,要等几分钟后才会显示断开并且返回到本地终端命令行這个问题太影响流畅性和心情, 决定修一修
第一种方法, 在本地或者远程服务器修改ssh配置, 定时发起类似心跳的信号
ClientAliveInterval 60表示每分钟发送一佽, 然后客户端响应, 从而保持长连接. ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到3次, 就自动断开。 对应的意义与上面类似第二种方法,使用autossh, 它会在ssh断开后自动再连接上
第三种方法,使用mosh工具 参考 。
据说是神器 不过我没用上。
当用SSH Secure Shell连接Linux时如果几分钟没有任哬操作,连接就会断开必须重新登陆才行,每次都重复相同的操作很是烦人,本文总结了两种解决的方法
ClientAliveInterval指定了服务器端向客户端請求消息的时间间隔, 默认是0,不发送而ClientAliveInterval 60表示每分钟发送一次,然后客户端响应这样就保持长连接了。这里比较怪的地方是:不是客户端主动发起保持连接的请求(如FTerm, CTerm等),而是需要服务器先主动
另外,至于ClientAliveCountMax使用默认值3即可。ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达箌一定值就自动断开,正常情况下客户端不会不响应。
指如果发现客户端没有相应则判断一次超时,这个参数设置允许超时的次数比如10。
则代表允许超时 5400秒 = 90分钟
然后找到里面的ServerAliveInterval 参数,如果没有你同样自己加一个就好了参数意义相同,都是秒数比如9分钟:
设置反空闲,如下图所示