解决在Mac中ssh登录后闲置时间过长而断开连接
2018-02-12
背景
当我们通过Mac终端连接服务器(比如阿里云的EC2),如果长时间不操作,一般服务器就会自动断开连接,这时候只能重新连接,感觉很麻烦。
原理
我发现其实在windows中用xshell通过ssh连接服务器就不会断开连接。
原理其实很简单,就是每隔一段时间客户端和服务器通信一次,比如发送一个消息,以此来保证服务器和客户端是活动状态,这样就永远不会存在超时断开连接的情况。
实际上只要修改一下ssh配置可以做到这一点。
配置
首先要找到本机(注意:是Mac,而不是服务器)的ssh的配置文件,在/etc/ssh/
目录下, 可以看到ssh有两个配置文件
- ssh_config: 这是ssh客户端的配置
- sshd_config: 这是ssh服务端的配置,也就是当别的机器来连接本机的,配置ssh的行为
直接修改ssh_config文件
将 ServerAliveInterval 0
改为ServerAliveInterval 60
如果没有ServerAliveInterval 0
直接在ssh_config文件的最后加上ServerAliveInterval 60
以下就是我自己的ssh_config文件的内容
1 | Host * |