LoginSignup
0
0

【SSH】sshコマンドのオプションで生存確認(ServerAliveInterval)の間隔を指定する

Posted at

概要

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回になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0