- ベストアンサー
sshでリモートPCとの接続が勝手に切れる問題について
- Ubuntu 8.04をインストールした2台のPC (PC AとPC B) にOpen SSH 4.7をインストールしました。
- PC AからPC Bにsshでログインすると、しばらく放置すると接続が切れてしまいます。
- PC Aの/etc/ssh/ssh_configにServerAliveCountMax 480とServerAliveInterval 300を設定していますが、接続は7時間程度で切れてしまいます。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 要約するとSSHでKeepAliveを設定したが接続が切れるという事ですよね。 質問の内容からSSHの設定方法を確認したいのかと思いました。 NATなネットワークの場合のように接続が切れる原因はSSH以外にあるの ではないでしょうか。 > topコマンドをやっていると接続が切れないので原因はこれだと思うのですが・・・。 とのことですので、コンソールに定期的に出力するプログラムを動作させれば、 解決するのではないでしょうか。 あとは、インターバルを短くしても解決しないようなら、サーバで パケットをキャプチャしてKeepAliveパケットが届いてるか調査して、 ネットワーク機器の動作を検証しないと分かりません。
その他の回答 (5)
> やってみましたがダメでした・・・。 すでに、openssh.orgサイトFAQに2005/09/20時点で明確な回答があることから、ClientAliveInterval やServerAliveIntervalの設定で問題ないものと思います。 2.12 - My ssh connection freezes or drops out after N minutes of inactivity.(放っておくとN分後にssh接続が切れる) http://www.openssh.org/faq.html#2.12 "white-tiger"さんの環境で目的どおりに動作しないのは、他の要因が絡んでいるのかも知れませんが、私には解りません。(私の環境ではman pageの説明通りに動作していますので、放っていても切れません)
> /etc/init.d/sshd restart としていたのですが、reload と restart は同じだと考えてはまずいでしょうか? 処理内容は異なりますが、今回のケースでの結果は多分同じでしょう。 自分でsshdスクリプトを参照してください。 なお、私の場合のsshdでは(/etc/rc.d/init.d/sshd)、restartはstop->startを行なっています。 > 実は、接続先のサーバが一台ではないので、 「2台のPCを持っています(PC A と PC B とします)」と明記されていましたので回答しました。
ServerAliveInterval は使わずに server側の/etc/ssh/sshd_configに ClientAliveInterval 300 を設定し service sshd reload でsshdをリロードして試してみてください。 ClientAliveIntervalについては man page を参照。 "keep alive" messagesの考え方はServerAliveIntervalと同じです。
補足
ありがとうございます。これから自宅に戻って試してみます。 二つ質問があります。もしよかったら教えて下さい。 (1)いつも /etc/init.d/sshd restart としていたのですが、reload と restart は同じだと考えてはまずいでしょうか? (2)ServerAliveInterval と ClientAliveInterval では効果が違うことがあるのでしょうか?実は、接続先のサーバが一台ではないので、できれば手元の(作業用)クライアント側で対処したかったので ServerAliveIntervalの方を設定したのですが。 よろしくお願いいたします。
- dev_null
- ベストアンサー率67% (37/55)
KeepAlive や Heartbeat について調べて見てください。
補足
/etc/ssh/ssh_config に ServerAliveCountMax 480 ServerAliveInterval 300 を書くのは、KeepAlive や Heartbeat について調べて見つけた方法なのです・・・。
- Tacosan
- ベストアンサー率23% (3656/15482)
シェルによっては「ある程度操作しないと勝手にログアウトされる」設定がデフォルトになってるかも.
補足
それだと、ローカルでログインした人も強制ログアウトをさせられることになると思います。
補足
やってみましたがダメでした・・・。 topコマンドをやっていると接続が切れないので原因はこれだと思うのですが・・・。 >> 実は、接続先のサーバが一台ではないので、 >「2台のPCを持っています(PC A と PC B とします)」と明記されていましたので回答しました。 わかりやすさのためにそう書きました。すみません。