ゆるテックノート

SSHポートフォワーディングとは?VPNとの違い

SSHポートフォワーディングは、SSH接続の中に別の通信を通す仕組みです。VPNと同じように「遠くのネットワークへ安全に届かせる」目的で使われることがありますが、得意なのはネットワーク全体の接続ではなく、特定のポートやアプリへの細い通り道を作ることです。

SSHポートフォワーディングの基本

SSHはもともと安全にサーバーへログインするための仕組みですが、その暗号化された接続の中へ別のTCP通信を流すこともできます。これをSSHポートフォワーディング、またはSSHトンネルと呼びます。

何ができる?

  • 手元のPCから、外部公開されていない管理画面やデータベースへ一時的に接続する。
  • 踏み台サーバーを経由して、社内やクラウド内の特定サービスへアクセスする。
  • 通信内容をSSHの暗号化された経路に包んで、中間ネットワークから見えにくくする。
  • VPNクライアントを入れずに、必要な接続だけを小さく開ける。

代表的なコマンド例

手元の `localhost:15432` に接続すると、SSHサーバーから見える `db.internal:5432` へ届く例です。

ssh -L 15432:db.internal:5432 user@example.com

3つの転送方式

SSHポートフォワーディングは、どちら側に入口を作るかで使い方が変わります。

方式の違い

方式 よく使う形 向いている用途
ローカル転送(-L) 自分のPCのポートを、SSHサーバー側から見える宛先へつなぐ 社内DB、管理画面、Redis、RDPなどへ一時的に接続する
リモート転送(-R) SSHサーバー側のポートを、自分のPC側や手元ネットワークの宛先へつなぐ NAT内の開発環境を一時的に外から確認する、サポート用の逆向き接続を作る
動的転送(-D) 自分のPCにSOCKSプロキシを作り、接続先を都度切り替える ブラウザや一部アプリの通信をSSH経由にする

VPNとの違い

VPNとSSHポートフォワーディングはどちらも暗号化されたトンネルを作れます。ただし、扱う範囲と運用の前提がかなり違います。

比較表

観点 SSHポートフォワーディング VPN
接続範囲 指定したTCPポートやSOCKS経由の通信が中心 端末全体、特定サブネット、アプリ単位など広く設計できる
主な用途 管理者や開発者が特定サービスへ一時接続する 在宅勤務、拠点間接続、常時接続、個人向けプライバシー補助
対応通信 基本はTCP。UDPやICMPはそのまま扱いにくい 方式によってIPレベルでTCP/UDP/ICMPなどを扱える
設定の重さ SSHアカウントと鍵があれば小さく始めやすい クライアント、ルーティング、DNS、認証、端末管理の設計が必要
権限管理 SSHログイン権限とサーバー側設定に強く依存する ユーザー、端末、ネットワーク、アプリ単位で設計しやすい製品が多い
利用者層 技術者向けになりやすい 一般利用者向けクライアントや企業管理に向く

ざっくりした使い分け

  • 「特定のDBや管理画面だけに入りたい」ならSSHポートフォワーディングが扱いやすい。
  • 「社内ネットワークや複数アプリを普段どおり使いたい」ならVPNのほうが向いている。
  • 「ブラウザだけSSH経由にしたい」なら動的転送(SOCKS)も選択肢になる。
  • 「全社員に配るリモートアクセス基盤」なら、認証、ログ、端末管理を含めてVPNやZTNA系を検討する。

よくある利用例

SSHポートフォワーディングは、外部公開したくない管理系サービスへ、必要な人だけが一時的に入る用途でよく使われます。

ローカル転送の例

  • 本番DBをインターネットへ公開せず、踏み台サーバー経由で管理ツールから接続する。
  • クラウド内の管理画面を `localhost` 経由で開く。
  • リモートデスクトップやVNCなどを、公開ポートなしで一時的に使う。

動的転送の例

SOCKSプロキシとして使う場合は、ブラウザ側のプロキシ設定も必要です。

ssh -D 1080 user@example.com

注意点

SSHトンネルは便利ですが、開けたポートは意図した相手だけが使えるように管理する必要があります。

安全に使うためのポイント

  • パスワードログインより公開鍵認証を基本にし、鍵の保管と失効を管理する。
  • 不要な転送を許可しないよう、サーバー側の `AllowTcpForwarding` や `PermitOpen` を検討する。
  • ローカル側で `0.0.0.0` にバインドすると、同じネットワークの他端末から使われる可能性がある。
  • SSHサーバーに入れる人は、内部サービスへの経路を作れる場合がある。踏み台サーバーのログと権限管理が重要。
  • 長期・多数ユーザー・広範囲アクセスに使うなら、VPNやゼロトラスト系アクセス製品のほうが運用しやすいことがある。

まとめ

SSHポートフォワーディングは「特定の通信だけをSSHで通す」ための軽量な方法です。VPNは「端末やネットワークの通信経路を設計する」ための仕組みです。

覚え方

  • SSHポートフォワーディングは、点と点をつなぐ細いトンネル。
  • VPNは、端末やネットワークをまとめて扱う太いトンネル。
  • 小さな管理用途ならSSH、大きなリモートアクセス基盤ならVPN、と考えると選びやすい。
  • VPNの見え方や守れる範囲は、VPN利用時に誰から何が見える?VPNで守れること・守れないことも合わせて確認する。