ジャパントオドアイニュース 編集デスク 日本語
ジャパントオドアイニュース ジャパントオドアイニュース 編集デスク
テック ビジネス ブログ ローカル ワールド 政治

What Is an SSH Tunnel – 仕組みと使い方を完全解説

Yuma Takeru Sato Takahashi • 2026-04-16 • 監修 高橋 蓮

SSHトンネルは、Secure Shell接続を活用してデータを暗号化し、異なるネットワーク間に安全な通信経路を構築する技術である。1995年に登場して以来、ポートフォワーディングという形で広く利用されてきた。

本稿では、SSHトンネルの基本的な概念から実際の使用方法、そしてVPNとの違いについて詳しく解説する。コマンド例を通じて、手元の環境での実装方法も具体的に示す。

SSHトンネルとは

SSHトンネル(SSHポートフォワーディング)は、SSH接続の暗号化機能を活用して、指定したポート間の通信を安全に転送する仕組みである。リモートサーバー経由で内部ネットワークやサービスにアクセスする際に、ファイアウォール越えや踏み台サーバー経由のアクセスを実現できる。

技術的なポイント

SSHトンネルは、通信内容を暗号化された状態で転送するため、平文で通信される古いプロトコルでも安全に使用できる。

概要

項目 詳細
プロトコル SSH(Secure Shell)
主な用途 ポート転送・暗号化トンネル
標準ポート 通常22番ポート
主要ツール OpenSSH、PuTTY

重要なポイント

  • 暗号化されていないプロトコルにセキュリティを追加できる
  • ローカル、リモート、ダイナミックと転送方式の組み合わせが可能
  • ファイアウォール越しに安全にアクセスできる
  • 踏み台サーバーを経由した二段階接続を構築できる
  • VPNを導入せずに簡易的な暗号化通信を実現できる
  • OpenSSH標準搭載のため追加ソフト不要
  • コマンドラインから即座に構築可能

SSHトンネルの利用用途

SSHトンネルは様々なシナリオで活用されている。主にファイアウォール越えや、内部ネットワークへの安全なアクセスが必要な場合に用いられる。

典型的な利用場面

  • データベースへのアクセス:踏み台サーバーを通じて、RDSや内部データベースに安全に接続
  • 開発環境のアクセス:NAT配下にある開発サーバーへの直接アクセス
  • レガシープロトコルの保護:FTPやTelnetなど平文プロトコルの暗号化
  • 企业内部システムへのアクセス:在宅勤務時の社内システムへの接続
セキュリティ上の注意

鍵認証と最小権限の原則を守ることが推奨される。認証情報の管理徹底が重要として強調されている。

ポートフォワーディングの種類

SSHポートフォワーディングには三つの形態がある。

ローカルポートフォワーディング(-L)は、ローカルマシンのポートをリモート側のポートに転送する。ローカルからリモート方向への通信をSSHサーバー経由で中継する。

リモートポートフォワーディング(-R)は、リモート側のポートをローカル側のポートに転送する。リモートからローカル方向への通信を確立する。

ダイナミックポートフォワーディング(-D)は、SOCKSプロキシとして動作し、動的な転送を実現する。ブラウザ経由での多目的アクセスに便利で、VPN代替として使用される。

SSHトンネルコマンドの実例

SSHトンネルはsshコマンドで構築する。主なオプションとして、-fでバックグラウンド実行、-Nでコマンド実行せず転送のみ、-vで詳細ログ出力、-pでSSHポート指定、-iで秘密鍵指定が可能である。

踏み台サーバーを経由したSSHアクセス

最も一般的な利用例として、踏み台サーバーを経由した接続を示す。

BIND_HOST=localhost
BIND_PORT=30022
BASTION_HOST=踏み台ホスト
BASTION_USERNAME=踏み台ユーザー
REMOTE_HOST=ターゲットホスト
REMOTE_PORT=22
ssh -v -N -L ${BIND_HOST}:${BIND_PORT}:${REMOTE_HOST}:${REMOTE_PORT} -p ${BASTION_SSH_PORT} ${BASTION_USERNAME}@${BASTION_HOST}

トンネル確立後、ssh -p ${BIND_PORT} リモートユーザー@localhostでターゲットサーバーに接続できる。

MySQLデータベースへのアクセス

ssh -L 33306:localhost:3306 ユーザー@踏み台
mysql -h localhost -P 33306 -u DBユーザー -p

ローカルホストの33306ポートへのアクセスを、踏み台サーバーの3306ポート(MySQL)に転送する。

設定ファイルによる自動化

~/.ssh/configに設定を記述すれば、複雑なコマンドを簡略化できる。

Host TARGET_HOST
  HostName 192.168.20.11
  User user_target
  LocalForward 33306 localhost:3306
  ProxyCommand ssh -CW %h:%p STEP_HOST

この設定により、ssh TARGET_HOSTだけで自動転送が有効になる。

接続の維持

トンネルを停止するには、ps aux | grep sshでプロセスIDを確認し、kill PIDで終了させる。autosshを使用すれば、接続監視と自動再接続也不可能である。長時間稼働させる場合に有効である。

SSHトンネルとVPNの違い

SSHトンネルは簡易VPN代替として機能するが、VPN(IPsecやOpenVPN)とは設計思想が異なる。

比較項目 SSHトンネル VPN
導入の手軽さ OpenSSH標準搭載、即時構築 サーバー構築が必要
通信単位 ポート単位の制御 全トラフィック暗号化
複数ユーザー 単一接続指向 複数ユーザー対応
帯域 制限あり 広帯域対応
大規模環境 不向き 適切

SSHトンネルの利点は軽量性と即時構築性である。ダイナミックポートフォワーディング(-D)はSOCKSプロキシとしてVPNのような動作をする。複雑なインフラを構築する前に、試用環境としてSSHトンネルを活用するケースも多い。

UbuntuでのSSHトンネル設定

Ubuntu(22.04)ではOpenSSHがデフォルトインストールされており、サーバー機能の有効化は以下の手順で行う。

  1. sudo apt update && sudo apt install openssh-serverでパッケージをインストール
  2. sudo systemctl enable --now sshでサービスを有効化
  3. sudo ufw allow 22でファイアウォールにSSHポートを開放

クライアント側は上述のコマンドで即使用可能である。セキュリティ向上のため、秘密鍵認証の設定が推奨される。ssh-keygenで鍵生成後、ssh-copy-id ユーザー@ホストで公開鍵を転送する。

Windows環境ではPuTTYを使い、GUIでSessionからTunneling設定を行う。Source portにローカルポート、Destinationにターゲットを指定することで、同様の転送が可能である。

SSHトンネルの歴史と標準化

SSHは1995年にTatu Ylönenによって開発された。初期バージョンのSSH-1では基本機能が実装され、1997年以降の実質標準となったSSH-2でポートフォワーディングが正式に標準化された。

  1. 1995年:SSH-1がTatu Ylönenにより開発・公開
  2. 1997年〜:SSH-2の実装が始まり、ポートフォワーディングが標準化
  3. 2006年RFC4254によりSSH接続プロトコルが公式に規定
  4. 現在:クラウド環境やDevOpsで広く活用

RFC4254はIETFが定めるSSH接続プロトコルの標準文書であり、トンネリング機能の詳細な仕様を定義している。

理解度の確認

明確に確立されている事項 不明確な点
SSHポートフォワーディングは確立された技術 特定の商用サービスでの実装詳細
三種類の転送方式が存在 企业内部での標準設定
OpenSSHでの標準サポート 最新OSでの動作確認状況

利用時の注意点

SSHトンネルは軽量で即座に構築できる一方、単一接続指向であり、大規模環境にはVPNがより適している。ポート単位での制御が必要な場合はSSHトンネルを選択し、全トラフィックの暗号化や複数ユーザー対応が必要な場合はVPNを選択する。

セキュリティの観点から、公開鍵認証の利用と最小権限の原則の順守が重要である。踏み台サーバーのアクセス権限も適切に管理する必要がある。

参考情報と引用

SSHは、暗号化されたデータ転送路を通じて任意のネットワーク通信を可能にする技術である。

SSH.com

SSHトンネルを活用することで、セキュアなアクセスユースケースを実現できる。

Teleport Blog

技術の詳細については、OpenSSH公式マニュアルRFC4254仕様を参照されたい。

まとめ

SSHトンネルは、SSH接続を活用した暗号化通信経路の構築技術である。ローカル、リモート、ダイナミックの三種類のポートフォワーディングがあり、用件に応じて選択する。OpenSSH標準搭載のため追加ソフトウェア不要で、Linux、Windows双方から簡単に実装できる。

VPN代替としての利用也不可能だが、大規模環境ではVPNの方が適している場面もある。セキュリティ向上のためには、公開鍵認証と最小権限の順守が不可欠である。

実際に試すには、基本的なコマンドから始めることをおすすめする。Galaxy 5G Mobile Wi-Fi – 速度評判・接続トラブル・設定完全ガイドのような通信環境の記事もRELATEDとして参考にされたい。

よくある質問

SSHトンネルとVPNはどちらを選べばよいですか?

単一接続で軽量な暗号化が必要な場合はSSHトンネル、全トラフィック暗号化や複数ユーザー対応が必要な場合はVPNが適しています。

SSHトンネルは無料で使えますか?

OpenSSHはオープンソースで無料です。SSHサーバーとなる機器が必要ですが、手元のLinuxマシンで即座に試すことができます。

踏み台サーバーとは何ですか?

直接アクセスできない内部ネットワークへの接続を、中継するサーバーのことである。SSHトンネルで多用される構成である。

トンネルを切断したくない場合はどうしますか?

autosshを使用すれば、接続監視と自動再接続も可能である。長時間稼働させる場合に有効である。

WindowsでもSSHトンネルを使えますか?

PuTTYというGUIクライアントを使えば、Windowsからでも簡単に設定できる。Source portとDestinationを指定するだけで転送が始まる。

動的ポートフォワーディング有什么用がありますか?

SOCKSプロキシとして動作し、ブラウザのプロキシ設定すれば、Webアクセス全てをSSH経由で暗号化できる。VPN代わりに便利である。

MySQLへのSSHトンネル接続は安全ですか?

はい、踏み台サーバーを経由することで、MySQLの通信をSSH暗号化できます。ローカルポートをMySQLポートにマッピングして接続する。

Yuma Takeru Sato Takahashi

筆者情報

Yuma Takeru Sato Takahashi

編集部は速報と分かりやすい解説を組み合わせて更新します。