Existe um bom artigo sobre este problema aqui .
Eles recomendam:
ssh -o TCPKeepAlive=yes
ou:
ssh -o TCPKeepAlive=no -o ServerAliveInterval=15
No entanto, tenho um problema no meu local de trabalho em que me desconecto das sessões, onde em casa elas estão bem. Eu acredito que meu firewall (SonicWall) pode estar flertando com o TCPKeepAlive, talvez por causa do NAT.
Meu cliente SSH, SecureCRT, felizmente tem uma opção para um protocolo "NO-OP", que acredito que basicamente envia um comando que não faz nada ao servidor. Ao ativar manualmente, posso permanecer conectado. Não tenho certeza do que o cliente do terminal MacOSX tem que é semelhante a isso. Existe um writeup sobre como para implementar "NO-OP" na linha de comando.
Finalmente, você pode querer usar o Wireshark ou outro sniffer para assistir a sua conexão TCP real para descobrir o que está acontecendo com ele. Essa seria a última maneira de ver porque ainda está desconectando de vez em quando.