SSH Keepaliveとタイムアウト設定
ServerAliveIntervalとServerAliveCountMaxでSSH接続の切断を防止。クライアント側のKeepalive設定でアイドルタイムアウトと切断を検出・処理する方法。
Best Practices
詳細な説明
SSH Keepalive設定
SSH接続は、アイドル接続をタイムアウトするファイアウォール、NATデバイス、ロードバランサーによって切断される可能性があります。クライアント側のKeepalive設定がこれを防ぎます。
設定例
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
Keepaliveの動作
ServerAliveInterval 60: データ交換がない場合、60秒ごとにKeepaliveメッセージを送信ServerAliveCountMax 3: 3回連続で応答がない場合、クライアントが切断
これらの設定で、切断検出は約180秒(3 x 60)後に行われます。
シナリオ別チューニング
| シナリオ | Interval | Max Count | タイムアウト |
|---|---|---|---|
| 標準デスクトップ | 60 | 3 | 約3分 |
| 不安定な接続 | 15 | 5 | 約75秒 |
| 長時間トンネル | 30 | 10 | 約5分 |
一般的なタイムアウト問題
- 企業ファイアウォール: 5-15分後にアイドル接続をタイムアウト
- AWS NAT Gateway: 350秒後にアイドル接続を切断
- クラウドロードバランサー: 60-300秒でタイムアウト
ユースケース
ファイアウォール、NATデバイス、または積極的なタイムアウトポリシーを持つクラウドネットワークインフラを通じて作業する際に、アイドルタイムアウトによるSSH接続切断を経験するすべてのユーザー。