TL;DR
オプション -> サーバー -> プロトコル -> KeepAliveパケットの送信間隔(sec)
このオプションをチェックし、時間を60
秒などに設定しておけばOK。
この現象について
サーバー側の設定によりわざとTMOUTでログアウトさせている場合もありますが、たいていの場合は何も設定してません。
私がよくなるのは接続したまま放置してしまい、画面上は接続できているように見えても何かキーを押すと反応がなく、少し経過してから切断されているというエラーがでて終了してしまいます。
このケースに当てはまる人は、ルーターなどの中間機器によって切断されているケースがほとんどだと思います。
NAT(ネットワークアドレス変換)しているルーターが、一定期間パケットが流れていないコネクションを、切断済みと判定して、NATテーブルをクリアしていると思われます。
NATテーブルクリア時に、IN/OUT両方に通知でもしてくれれば良いですが、何もしてくれないルーターが多いようです。少なくともうちはこのタイプでした。
で、NATテーブルにない状態の後で、キー入力などによりパケットを送ろうとすると、既にないので、このときに初めてクライアントは切断されたと気づくわけです。
これを防ぐには定期的に無害なパケットを送り込めば良いのですが、その設定はRLoginで言うと、以下にあります。
オプション -> サーバー -> プロトコル -> KeepAliveパケットの送信間隔(sec)
このオプションをチェックし、時間を60 秒などに設定しておくと、ルーターからクリアされることはなくなりました。
RLogin以外のSSHクライアントでも、PuTTYなどにも同じ機能が入っています。
その他の解決方法
クライアントが対応していなくても、Heartbeatパッチというものがあるようです。
2020/01/22 追記
http://www.sc.isc.tohoku.ac.jp/~hgot/sources/openssh-watchdog.html
リンク先がなくなっていましたので貼り換えます。
https://www.imglab.org/m/hgot/sources/openssh-watchdog.html