プロが教えるわが家の防犯対策術!

Ubuntu 8.04 が入った2台のPCを持っています(PC A と PC B とします。)。
両方のPC に Open SSH 4.7 をインストールしました。

端末で、PC A から PC B に ssh でログインしたのですが、
端末をしばらく放っておくと、

-------------------
Read from remote host PCB: Connection reset by peer
Connection to PCB closed.
-------------------

と表示されて、PC B への接続が勝手に切られてしまいます。

接続が切れないようにする方法はないでしょうか?


ネットで情報を調べて、PC Aの /etc/ssh/ssh_config に

ServerAliveCountMax 480
ServerAliveInterval 300

と書いておいたので、300秒(=5分)×480 = 40時間は切れないはずなのですが、
7時間くらいで切れてしまいます・・・。
http://www.unixuser.org/~euske/doc/openssh/jman/ …

よろしくお願いします!

A 回答 (6件)

No.2です。



要約するとSSHでKeepAliveを設定したが接続が切れるという事ですよね。
質問の内容からSSHの設定方法を確認したいのかと思いました。

NATなネットワークの場合のように接続が切れる原因はSSH以外にあるの
ではないでしょうか。

> topコマンドをやっていると接続が切れないので原因はこれだと思うのですが・・・。

とのことですので、コンソールに定期的に出力するプログラムを動作させれば、
解決するのではないでしょうか。

あとは、インターバルを短くしても解決しないようなら、サーバで
パケットをキャプチャしてKeepAliveパケットが届いてるか調査して、
ネットワーク機器の動作を検証しないと分かりません。
    • good
    • 0

> やってみましたがダメでした・・・。



すでに、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の説明通りに動作していますので、放っていても切れません)
    • good
    • 0

> /etc/init.d/sshd restart としていたのですが、reload と restart は同じだと考えてはまずいでしょうか?



処理内容は異なりますが、今回のケースでの結果は多分同じでしょう。
自分でsshdスクリプトを参照してください。
なお、私の場合のsshdでは(/etc/rc.d/init.d/sshd)、restartはstop->startを行なっています。

> 実は、接続先のサーバが一台ではないので、

「2台のPCを持っています(PC A と PC B とします)」と明記されていましたので回答しました。

この回答への補足

やってみましたがダメでした・・・。
topコマンドをやっていると接続が切れないので原因はこれだと思うのですが・・・。

>> 実は、接続先のサーバが一台ではないので、
>「2台のPCを持っています(PC A と PC B とします)」と明記されていましたので回答しました。

わかりやすさのためにそう書きました。すみません。

補足日時:2009/10/12 09:55
    • good
    • 0

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の方を設定したのですが。

よろしくお願いいたします。

補足日時:2009/10/11 19:53
    • good
    • 0

KeepAlive や Heartbeat について調べて見てください。

この回答への補足

/etc/ssh/ssh_config に
ServerAliveCountMax 480
ServerAliveInterval 300
を書くのは、KeepAlive や Heartbeat について調べて見つけた方法なのです・・・。

補足日時:2009/10/11 16:33
    • good
    • 0

シェルによっては「ある程度操作しないと勝手にログアウトされる」設定がデフォルトになってるかも.

この回答への補足

それだと、ローカルでログインした人も強制ログアウトをさせられることになると思います。

補足日時:2009/10/11 02:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!