非アクティブによるSSHタイムアウトは迷惑な話です。 ここでは、SSH セッションを生かし、SSH タイムアウトを防ぐ方法を紹介します。

タイムアウト値より小さい指定した間隔で、クライアントとサーバー間で「ヌルパケット」を送信することで、SSH タイムアウトを回避することができます。 このパケットがクライアントから送信されるかサーバーから送信されるかは関係なく、両者の間で何らかの通信が行われている限りです。

SSHクライアントが「nullパケット」を送信するように設定すれば、あなたのコンピュータから行うすべてのSSH接続でSSHタイムアウトを防止することができるでしょう。

クライアント (顧客、ユーザー、子供) が SSH タイムアウトにうんざりしている場合、SSH クライアントの設定方法を指示するか – この記事を参照するように – またはサーバー自体を設定して、SSH セッションタイムアウトを回避することができます。 これを行うには、SSH サーバーが「ヌルパケット」を送信するように設定し、すべてのクライアントがサーバーに行うすべての SSH 接続でタイムアウトを防ぎます。

幸い、設定は排他的ではないので、クライアントとサーバーの両方を設定しても、すべてがスムーズに実行されます。

クライアント側で SSH タイムアウトを防ぐ

MacまたはLinuxを使用している場合、ローカルのSSH設定ファイルを~/.ssh/configで編集し、次の行を追加できます:

ServerAliveInterval 120

これにより、SSH接続で120秒ごとに「NULLパケット」を送信し、接続を維持することができるようになります。

サーバー側で SSH タイムアウトを防ぐ

サーバー管理者の場合、サーバーの /etc/ssh/sshd_config で SSH デーモンの設定に以下を追加すると、クライアントがタイムアウトしないようにできます – ローカル SSH 設定を変更する必要がなくなります。

ClientAliveInterval 120ClientAliveCountMax 720

これにより、サーバーはクライアントに120秒ごとに「null packet」を送信し、クライアントが720日間(120秒*720=86400秒=24時間)非アクティブになるまで切断されません。

コメントを残す

メールアドレスが公開されることはありません。