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

autossh

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運用者やシステム管理者はぜひ活用してください。