TOML設定からポートフォワードを定義・開閉できる、Go製のコマンドラインSSHトンネル管理ツール。
pahaz/sshtunnel
paramikoを使って、ローカルポートからリモートまたはプライベートホスト上のサービスへ転送するSSHトンネルを開くPythonライブラリとCLI。
- スター
- 1,305
- フォーク
- 200
- 未解決の Issue
- 71
- 最終コミット
- 18 時間前
これは何?
sshtunnelを使うと、PythonコードやコマンドラインからSSHポートフォワーディングを設定できます。WebアプリやデータベースなどのサービスにSSHポート経由でしかアクセスできない場合や、SSHのみを公開するゲートウェイの背後にプライベートサーバーがある場合に便利です。
主なエントリーポイントはSSHTunnelForwarderです。start()/stop()を使うほか、open_tunnel経由でコンテキストマネージャーとして利用できます。トンネルを開始するとlocal_bind_portが公開され、アプリケーションはそのポートに接続します。認証方式は、パスワード、パスフレーズを任意で指定できる秘密鍵ファイル、SSHエージェントの鍵、~/.ssh/configに対応しています。あるトンネルを別のトンネルのローカルポートに接続することで、複数のトンネルを連結できます。
sshtunnel CLIも提供されており、SSH認証情報、リモートのバインドアドレス、ローカルのバインドアドレスを引数として指定します。純粋なPythonで実装されており、WindowsとUnix系システムの両方で動作します。
主な機能
- 01SSH経由でしか到達できないリモートサービスへローカルポートを転送する。
- 02プログラムから、またはwith文を使ってトンネルを開始・停止する。
- 03パスワード、秘密鍵、SSHエージェントによる認証に対応する。
- 04複数のトンネルを連結して、ゲートウェイの背後にあるホストへ接続する。
- 05手軽にポートフォワーディングを行うためのコマンドラインインターフェースを提供する。
- 06~/.ssh/configからホストや設定を読み込む。
ユースケース
- SSHポートしか開いていないサーバー上のデータベースやWebサービスに接続する。
- テストスクリプトから踏み台サーバーやジャンプサーバー経由でプライベートホストに接続する。
- スクリプトから、Vagrant VMのポートなど、ローカルの開発用データベースを転送する。
- リモートリソースを必要とするCIやデータパイプラインで、トンネルの設定を自動化する。
クイックスタート
- 1
PyPIからパッケージをインストールする
pip install sshtunnel - 2
SSHTunnelForwarderを使ってPythonからトンネルを開き、server.local_bind_portを読み取る
収録されている特集
トピック
よくある質問
- sshtunnel とは?
- paramikoを使って、ローカルポートからリモートまたはプライベートホスト上のサービスへ転送するSSHトンネルを開くPythonライブラリとCLI。 sshtunnelを使うと、PythonコードやコマンドラインからSSHポートフォワーディングを設定できます。WebアプリやデータベースなどのサービスにSSHポート経由でしかアクセスできない場合や、SSHのみを公開するゲートウェイの背後にプライベートサーバーがある場合に便利です。
- sshtunnel は無料で使えますか?ライセンスは?
- sshtunnel は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- sshtunnel は今もメンテナンスされていますか?
- 活発にメンテナンス中。sshtunnel の最終コミットは 2026年11月6日 です。
- sshtunnel は何に使えますか?
- SSHポートしか開いていないサーバー上のデータベースやWebサービスに接続する。 テストスクリプトから踏み台サーバーやジャンプサーバー経由でプライベートホストに接続する。 スクリプトから、Vagrant VMのポートなど、ローカルの開発用データベースを転送する。 リモートリソースを必要とするCIやデータパイプラインで、トンネルの設定を自動化する。
- sshtunnel のインストール方法は?
- PyPIからパッケージをインストールする: pip install sshtunnel SSHTunnelForwarderを使ってPythonからトンネルを開き、server.local_bind_portを読み取る
- sshtunnel はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/pahaz/sshtunnel
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
複数ベンダーのネットワーク機器へのSSH CLI接続を簡素化し、showコマンドの実行や設定変更を行うPythonライブラリ。
TailscaleのWireGuardデータプレーン経由で、アカウントやコントロールプレーンなしに2台を接続するnetcat風CLI兼Goライブラリ。
~/.ssh/configに定義されたSSHホストの閲覧、接続、管理を行うターミナルTUI。
ローカルのTCPポートをリモートサーバー経由で公開する、Rust製のシンプルなCLIです。
データベース、SSH、SFTP、ターミナル、リモートデスクトップ、監視、Markdownノート、AIエージェントをまとめたRust製のネイティブデスクトップワークスペース。