アメリエフの技術ブログ

Amelieff Staff Blog

SSH接続のタイムアウトを防ぐ〜ローカル側の設定

f:id:adachit:20210709152755p:plain

SSH接続のタイムアウトを防ぐ(ローカル側の設定)

こんにちは、adachitです。
突然ですが、リモートサーバへssh接続しているとき、タイムアウトになった経験はございますか。
リモートサーバで作業している間は、基本的にタイムアウトになることはないと思いますが、たとえば、作業中に急ぎのメールを返さなければならない、お腹が空いたから腹ごしらえなど、SSH接続したサーバから一時的に離れることは日常的にあると思います。
今回は、ローカルからの設定でSSH接続中のタイムアウトを防ぐ方法をご紹介したいと思います。

1. Linux & Mac (~/.ssh/configの設定)

LinuxまたはMacの場合、~/.ssh/configにServerAliveIntervalTCPKeepAliveを追加することで設定することができます。

Host [host]
    HostName ****
    User ****
    Port ****
    IdentityFile ****
    ServerAliveInterval 120
    TCPKeepAlive yes

ServerAliveIntervalは、指定した秒数ごとに接続先のサーバへの応答を確認してくれます。
TCPKeepAliveをyesにすると、TCPでのkeep aliveが有効になります。
例に挙げた場合ですと、120秒ごとに接続の確認が行われ、SSH接続を維持してくれます。

2. Windows (Tera Term)

Windowsユーザの方でTera Termを使用している場合は、Tera Termの「設定」→「SSH」→「ハートビート (keep-alive) 」から秒数を設定することで接続のタイムアウトを防ぐことができます。 詳しくはこちらの記事をご参照ください。

(追記) Topコマンドを使用する

接続先のサーバでtopコマンドを使用することで、接続のタイムアウトを防ぐことができるようです (参照した記事 ) 。
こちらの方法では、OS関係なくタイムアウトを防ぐことができます。