ssh接続がタイムアウトするのを防ぐ [PC]
sshでリモートログインしながら作業していたら、ちょっと調べごとをしたくなって、調べている間に接続がタイムアウトしてしまう。。なんていうことはよくあること。
調べる→ログイン→調べる→ログイン→…なんていうのは非効率。
ということで、それを防ぐための方法。
簡単にいうと一定間隔ごとに無害なパケットを送ってタイムアウトするのを防ぐ、というもの。
これまではopenSSHにHeartbeatという機能を加えるパッチを当てることで実現していた。
けれども、そのパッチの開発が4.4で止まっている。(5.1まではどこかで見つけたような気もするのだけれど。)
開発が止まっているということは「もはやそのパッチが不必要になった」ということでは?と思い調べてみると、debian系のsshクライアントにはパッチが当たっていて、ServerAliveIntervalとServerAliveCountMAXというオプションがあることが判明。
自分はUbuntuを愛用しているので当然このオプションもある。
ssh -i 鍵 -o ServerAliveCountMAX=#1 -o ServerAliveInterval=#2 接続先
のようにして使う。(#1, #2には整数を入れる。Intervalの単位は秒。#1*#2秒の間接続がタイムアウトするのを防ぐことになる)
ただ、思ったように動かないという報告もあるようなので、使ってみて、ということになりそうではある。
パッチ当てなくてよかった、とは。今までせっせと当てていたのが残念だなぁ。。
調べる→ログイン→調べる→ログイン→…なんていうのは非効率。
ということで、それを防ぐための方法。
簡単にいうと一定間隔ごとに無害なパケットを送ってタイムアウトするのを防ぐ、というもの。
これまではopenSSHにHeartbeatという機能を加えるパッチを当てることで実現していた。
けれども、そのパッチの開発が4.4で止まっている。(5.1まではどこかで見つけたような気もするのだけれど。)
開発が止まっているということは「もはやそのパッチが不必要になった」ということでは?と思い調べてみると、debian系のsshクライアントにはパッチが当たっていて、ServerAliveIntervalとServerAliveCountMAXというオプションがあることが判明。
自分はUbuntuを愛用しているので当然このオプションもある。
ssh -i 鍵 -o ServerAliveCountMAX=#1 -o ServerAliveInterval=#2 接続先
のようにして使う。(#1, #2には整数を入れる。Intervalの単位は秒。#1*#2秒の間接続がタイムアウトするのを防ぐことになる)
ただ、思ったように動かないという報告もあるようなので、使ってみて、ということになりそうではある。
パッチ当てなくてよかった、とは。今までせっせと当てていたのが残念だなぁ。。
2010-05-19 10:04
nice!(0)
コメント(0)
トラックバック(0)
コメント 0