ssh 接続をタイムアウトしないようにする

提供:maruko2 Note.
移動: 案内, 検索

目次

OpenSSH (Linux, OS X)

ssh の接続が切れないよう(タイムアウトしないよう)にするには、クライアント側かサーバー側のどちらかに以下の設定をすればよい。サーバーとクライアント両方に設定しても問題はない。

クライアント側の設定

sshd サーバと応答確認する間隔 ServerAliveInterval[1] を設定する。

/etc/ssh/ssh_config または ~/.ssh/config を編集する。ServerAliveInterval のデフォルト値は 0 で、デフォルトでは応答確認しないようになっている。

ServerAliveInterval 15

設定した時間に応答がないと、ServerAliveCountMax の回数(デフォルト値: 3)応答確認し、応答がないとタイムアウトする。

例えば ServerAliveInterval 15 に設定すると 15秒毎にサーバーにメッセージを送り、ServerAliveCountMax のデフォルト回数である 3回まで繰り返す。つまり、サーバーが応答しなくなった後 45秒後に接続を切断する。

サーバ側の設定

sshd サーバ側でも同じような設定をすることができる。サーバ側では /etc/ssh/sshd_configClientAliveInterval[2] を設定する。

ClientAliveInterval 15

putty (Windows)

Connection 設定の Seconds between keepalives (0 to turn off) に、サーバー(接続先)と接続し続けるためのパケットを送る間隔を入力する。例えば 15 と入力すると、15秒間隔で ssh サーバーと接続確認するようになる。

Low-level TCP connection options の設定はデフォルトのまま変更不要。

Seconds between keepalives に、パケットを送る間隔(秒数)を入力する

Low-level TCP connection options

Disable Nagle's algorithm (TCP_NODELAY option)
Nagle アルゴリズムは、最大セグメントサイズ以下の複数の送信メッセージを一つに束ね、まとめて送信する。[3]
低速回線で Telnet のように小さなデータを頻繁にやりとりする場合、Nagleアルゴリズムは効果があるかもしれない。
putty のデフォルト設定では使用しない。
Enable TCP keepalives (SO_KEEPALIVE option)
TCPプロトコルの keepalive(デフォルト:オフ 7200秒)を有効/無効にする設定で、ssh 接続のタイムアウトには関係ない。

脚注

  1. ssh_config(5) SSH_CONFIG (5)
  2. sshd_config(5) SSHD_CONFIG (5)
  3. http://ja.wikipedia.org/wiki/Nagleアルゴリズム
LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数