autossh:SSHポートフォワーディングを常時安定

目次
autosshコマンドについての概要と詳細
autosshコマンドとは
autossh
コマンドは、SSHトンネル接続を自動監視し、切断やエラーが発生した際に自動的に再接続を行うための便利なユーティリティです。LinuxやUNIX系OS、macOS、Windows(WSLやCygwin経由)で利用でき、リモートポートフォワーディングや安全なVPNトンネルの維持、安定したリモートアクセス環境の構築に重宝します。通常のssh
コマンドの引数をそのまま利用できるため、既存のSSH運用を簡単に自動化・堅牢化できます。
主な用途
- ネットワーク切断・エラー時のSSHトンネル自動復旧
- ポートフォワーディング(ローカル・リモート・ダイナミック)の安定運用
- VPN代替・IoTやリモートサーバ監視のための常時SSH接続
- バックグラウンドでの堅牢なリモートアクセス環境構築
主な特徴
- 自動再接続:SSH接続が切断された場合、一定間隔で自動的に再接続を試みる
- トンネル監視:通信が途絶えた場合も検知して復旧可能
- 柔軟な引数互換:sshとほぼ同じ引数・オプションがそのまま使える
- 簡易な監視ポート利用:ポート監視用にエコーポートを自動的に開設し、死活監視に利用
- デーモン化対応:バックグラウンド動作やシステム起動時自動起動に最適
基本的な使い方
autossh [autosshのオプション] sshの引数
autossh -M 0 -f -N -L 8080:localhost:80 user@remote.example.com
:ローカル8080→リモート80へのトンネルを維持autossh -M 20000 -f -N -R 10022:localhost:22 user@remote.example.com
:リモート10022→ローカル22へのトンネルを監視(-Mで監視ポート指定)autossh -f -N user@host
:SSHコマンドと同様のシンプルな使い方
主なオプション一覧
オプション | 説明 |
---|---|
-M [ポート番号] | 監視用ポートを指定(0で無効化、デフォルトは0で内部監視) |
-f | バックグラウンドで動作 |
-N | リモートコマンドを実行せずトンネルのみ確立 |
-L [ローカル:ホスト:ポート] | ローカルフォワード |
-R [リモート:ホスト:ポート] | リモートフォワード |
-C | 通信圧縮 |
-i [鍵ファイル] | 指定した秘密鍵ファイルで認証 |
インストール方法
RPM系(RedHat, CentOS, Fedoraなど)
$ sudo dnf install autossh
Debian系(Debian, Ubuntuなど)
$ sudo apt install autossh
autosshの活用ポイント
- VPNや常時SSHトンネルの維持が必要な場合、手動再接続の手間を自動化できる
- IoTデバイスや遠隔地サーバの監視・管理にも最適
- systemdやinitスクリプトと連携して常駐サービス化も簡単
まとめ
autosshは、SSHの安定した運用と接続切れ対策を自動化できる便利なユーティリティです。リモートサーバや重要なトンネルの監視に必須となるツールなので、SSH運用者やシステム管理者はぜひ活用してください。