概要
sshはセキュアシェル(Secure Shell)プロトコルを使ってリモートマシンにログインするためのツール。本記事では、ssh構成ファイル、もしくはsshコマンド実行時のオプションにて、サーバへの生存確認を行う設定について紹介します。
ServerAliveInterval
オプションとは
ssh接続をしていると、いつの間にかタイムアウトしていることがあります。そんなタイムアウト(コネクション切れ)を防止する手段として、ServerAliveInterval
パラメータがあります。
ssh構成ファイルである/etc/ssh/ssh_config
(もしくは~/.ssh/config
)に以下のように追記することで、60秒ごとにサーバにメッセージを送り、サーバへの応答を確認してくれます。
ServerAliveInterval 60
また、ServerAliveCountMax
というパラメータもあります。
ここでは、サーバから応答を受け取らなかった場合に、クライアントが接続を終了するまでの試行回数を指定できます。
ServerAliveCountMax 3
上記の場合、クライアントは60秒ごとにサーバに生存確認を送り、サーバからの応答がない場合、最大3回まで再試行を行います。
サーバからの応答が3回続けてない場合、クライアントは諦めて接続を閉じる、という意味になります。
SSHログインする際にオプション指定できる
上記のことは調べるとすぐに出てきますが、sshコマンドを使用してリモートサーバに接続する際に、オプションとして指定することもできることを知りました。以下で可能です。
ssh -i sample_ecs.pem ec2-user@XXXX
↓↓↓ 生存確認をオプション指定 ↓↓↓
ssh -o ServerAliveInterval=120 -i sample_ecs.pem ec2-user@XXXX
-o ServerAliveInterval=120
というオプションを指定することで、SSH接続がアイドル状態になった際に、指定した秒数ごとにサーバに対して生存確認のパケットを送信する間隔を設定できます。
これにより、接続が途切れないように保つことができます。
他にもオプションは色々あります。代表的なものとその説明は以下記事に記載ありました。configファイルについても説明があります。
参考:~/.ssh/configを使ってSSH接続を楽にする
デフォルト値は?
ServerAliveInterval
のデフォルト値は0
で、何も設定をしない場合は応答確認しないようになっています。
また、ServerAliveCountMax
のデフォルト値は3
です。クライアントが再試行する最大回数は3
回になります。