「ssh接続が自動切断される場合の回避方法」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「sshの接続が自動的に切れてしまうことがあります。その場合は、sshもしくはsshdの設定を変更すると問題が解消できます。ssh...」)
 
(相違点なし)

2014年11月16日 (日) 19:16時点における最新版

sshの接続が自動的に切れてしまうことがあります。その場合は、sshもしくはsshdの設定を変更すると問題が解消できます。sshコマンドならssh_configにServerAliveInterval 60といった設定を加えます。sshdの場合は、sshd_configにClientAliveInterval 60を加え、sshdをリスタートします。

読み方

ClientAliveInterval
くらいあんと あらいぶ いんたーばる
ServerAliveInterval
さーば あらいぶ いんたーばる

概要

sshの接続をそのまま放置していると、自動的に切断されてしまうことがあります。 例えば、以下のエラーメッセージが表示されたりします。

Write failed: Broken pipe

まったく通信していないときに、不要と思われて、切断されてしまいます。

回避方法として、クライアント側で設定する方法とサーバ側で設定する方法の2つがあります。

クライアント側のsshでの対処方法

ServerAliveInterval を使用すると サーバから一定期間データが来ないとき、sshコマンドがsshdに応答確認することで接続を維持します。

$HOME/.ssh/config に以下の設定を追記します。 ServerAliveInterval は、確認する間隔の秒数を指定します。

Host *
	ServerAliveInterval 60
	ServerAliveCountMax 3

ServerAliveIntervalの設定は、デフォルトでは、0 で、まったく確認しません。

この応答確認は、デフォルトは3です。ServerAliveCountMax で設定可能です。

サーバ側のsshdでの対処方法

この対処方法は、サーバ側のsshdの設定を変更する権限が必要となります。

ClientAliveInterval では、sshd側が一定期間クライアントと通信していないときに、応答確認を行います。

ClientAliveInterval は、確認する間隔の秒数を指定します。 /etc/ssh/sshd_config に以下を追記します。

ClientAliveInterval	60
ClientAliveCountMax	3

設定を反映するために、sshdを再起動します。

$ sudo service sshd restart

Putty側での対処方法

PuTTY の設定の場合は、「接続」カテゴリの「接続の設定」を変更します。 「セッションをアクティブに保つための null パケットの送信」の設定で 「 Keepalive の間隔(秒、0 でオフ) 」があります。 デフォルトでは、0 で、null パケットを送信していません。

この値を30とか60とかに設定することで、sshの接続が維持できるようになります。

関連項目