在SSH会话中使用tmux时,导致着名的“断开的pipe道”是什么?

scheme1:我从我的雇主(OSX Yosemite SSH客户端)SSH到我的家庭服务器(Debian稳定版)和(重新)连接到一个tmux会话。 如果我把terminal闲置了一段时间(~20分钟),看起来networking连接已经被打断了太久,出现着名的SSH错误:“破损的pipe道”。 如果我重新logintmux的行为如预期:会话仍然活着。

情景2:我从我的雇主SSH到我的家里的箱子。 现在我做我通常做的东西,但这次不是在一个三重奏会议。 现在我可以把terminal闲置几个小时,它不会死。

场景3:我从我自己的家庭网段SSH到同一台服务器,并连接到一个tmux会话。 现在我得到了预期的行为。 经过一段时间不活动后,terminal不会丢失连接,而不使用tmux。

我试图谷歌我的问题,但问题是,我得到的答案是错误的问题:问:我使用SSH长时间运行命令,如果我得到一个坏的pipe道,我怎么能重新连接? A:你听说过三重奏吗? 是的,我有 … 。 但是我没有听说tmux引起的pipe道破损。

我也问了irc的问题,但是我没有得到答复。

在/ etc / ssh_config或主目录〜/ .ssh / config中全局启用SSH Keepalive

KeepAlive yes ServerAliveInterval 60 

在我find这个openssh选项之前,我会运行“top -d 60”来保持连接活着。

我估计这与'保持会议活着',也就是'平息'有关。 有这样的事情的configuration选项。 Tmux并不介意被断开连接,而且 – 你不应该把未使用的连接打开。 这是不好的networking礼仪;-)