保持SSH连接, 避免超时闲置断开

问题: SSH连接后, 超时自动登出, 提示"Write failed: Broken pipe"

方法一, 客户端配置

linux客户端:

编辑: /etc/ssh/ssh_config
添加: ServerAliveInterval 60

Mac OSX 用户端:

编辑: /etc/ssh_config
添加: ServerAliveInterval 60

仅本次使用ssh保持连接:

ssh -o ServerAliveInterval=60 user@sshserver

ServerAliveInterval指定每多少秒会向服务器发一个KeepAlive请求,避免被踢

方法二, 服务器端配置

Linux服务器端:

编辑: /etc/ssh/sshd_config
添加: ClientAliveInterval 60
重启ssh: /etc/init.d/sshd restart

Mac OSX服务器端:

编辑: /etc/sshd_config
添加: ClientAliveInterval 60

ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔(服务器主动发), 默认是0, 不发送. ClientAliveInterval 60 表示每分钟发送一次.

可同时配置ClientAliveCountMax参数, ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开, 正常情况下, 客户端不会不响应, 使用默认值3即可.

配置服务器端SSH之后每一个连接到此服务器上的客户端都会受其影响.

另外

如果想查看连接情况, 可使用 "ps auxww | grep ssh".

标签: SSH, OSX, Linux