Repolode
pahaz

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. 1

    PyPIからパッケージをインストールする

    pip install sshtunnel
  2. 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 の数値は毎日更新されます。

関連プロジェクト