SSHポートフォワーディングを使えば、ファイアーウォールの内側にあるようなマシンに接続できたりします
ポートフォワーディングを使った例として、ここではWindowsPCにリモートデスクトップ接続してみます
目次
単純な接続
SSHサーバに接続し、そこを経由してWindowsサーバにリモートデスクトップ接続する例です
図で説明すると以下のようになります
MacOSXからのリモートデスクトップ接続
接続元となるPCがMacOSXの場合、ターミナルから以下を実行します
$ ssh -A -t -L 3389:Windowsサーバ:3389 foo@外部SSHサーバ
この状態で、リモートデスクトップクライアントアプリから、localhost(127.0.0.1)に対して接続を行います
以下の様に、「PC Name」に「127.0.0.1」を指定します
これで、Windowsサーバにリモートデスクトップ接続できます
接続先がWindows8.1やWindows2012等の場合、Mac用のMicrosoft Remote Desktopsはバージョンか8.xでないとダメなようです
※Version8.0.13で接続に成功しました
※接続成功の画面
Windowsからのリモートデスクトップ接続の場合
接続元となるPCがWindowsPCの場合、SSHクライアントソフト(Putty)から以下のような設定の上でSSHサーバに接続します
源ポートに「3389」を指定し、送り先にリモートデスクトップ接続するWindowsサーバとポートをコロン(:)で挟んで「Windowsサーバ:3389」の様に指定します
この状態で、リモートデスクトップクライアントからlocalhost(127.0.0.1)に接続します
これで、Windowsサーバにリモートデスクトップ接続できます
サーバを複数経由した、多重ポート転送による接続
SSHサーバを2台介してリモートデスクトップ接続する場合の例です
図で説明すると以下のようになります
MacOSXからのリモートデスクトップ接続
接続元となるPCがMacOSXの場合、ターミナルから以下を実行します
ssh -A -t -L 3389:127.0.0.1:3389 foo@外部SSHサーバ ssh -A -t -L 3389:Windowsサーバ:3389 foo@内部SSHサーバ
この状態で、リモートデスクトップクライアントアプリから、localhost(127.0.0.1)に対して接続を行います
接続の指定は単純な接続の場合と同様に、「PC Name」に「127.0.0.1」を指定します
これで、Windowsサーバにリモートデスクトップ接続できます
Windowsからのリモートデスクトップ接続の場合
接続元となるPCがWindowsPCの場合、SSHクライアントソフト(Putty)から以下のような設定の上でSSHサーバに接続します
源ポートに「3389」を指定し、送り先にlocalhost(127.0.0.1)とポートをコロン(:)で挟んで「127.0.0.1:3389」の様に指定します
接続後、Puttyのターミナルから、内部SSHサーバにSSH接続します。
ssh -A -t -L 3389:Windowsサーバ:3389 foo@内部SSHサーバ
これでポート転送の多段ができましたので、この状態でリモートデスクトップクライアントからlocalhost(127.0.0.1)に接続します
これで、Windowsサーバにリモートデスクトップ接続できます