2009年9月13日日曜日

ssh でキープアライブを送信する

ファイアウォールや NAT BOX には、セッションを管理するためのタイマがあるので、無通信時間が続くと接続を切られてしまいます。
ssh で接続しながら、作業しているといつの間にか接続が切れていることがある。

OpenSSH には、"ServerAliveInterval" というオプションが存在する。既定値は、0 で無通信時にサーバにメッセージを送らない。15 を指定すれば、15 秒ごとにサーバにメッセージを送ることになる。
"ServerAliveCountMax" の既定値が 3 なので、"ServerAliveInterval" に 15 を指定した場合、約 45 秒間サーバからのレスポンスが無ければ、ssh のセッションを切断する。

※ このオプションは、ssh2 の場合のみ意味がある。
$ ssh -o ServerAliveInterval=15 user@remote-host
とするか、config ファイルにオプションを書き込んでおく。
$ echo "ServerAliveInterval 15" >>~/.ssh/config
$ chmod 644 ~/.ssh/config

0 件のコメント: