前回 に引き続き、SSHポートフォワーディングについてです。
今回はSSHポートフォワーディングを2段階にする方法です。
2段階SSHポートフォワーディングでは、下図のように、ローカルマシンの XX番ポートにアクセスすることで、SSHサーバ1と2を経由して、リモートマシンの YY 番ポートにアクセスします。
1段目は、ローカルマシンの XX番ポートにアクセスすることで、SSHサーバ1を経由して、SSHサーバ1自身の ZZ番ポートにアクセスします。
2段目は、SSHサーバ1の ZZ番ポートにアクセスすることで、SSHサーバ2を経由して、リモートマシンの YY 番ポートにアクセスします。
この2段SSHポートフォワーディングは、リモートマシンが特定のマシン(ここではSSHサーバ2)からしか接続を受け付けず、かつローカルマシンはSSHサーバ1にしかアクセス出来ないような場合に使用します。
この多段SSHポートフォワーディングが出来るには、
・ローカルマシンは SSHサーバ1に sshでアクセスできること
・SSHサーバ1は SSHサーバ2に sshでアクセスできること
・SSHサーバ2はリモートマシンの YY番ポートにアクセス出来ること
が必要です。
それでは以降、2段SSHポートフォワーディンの為の設定です。
1段目の接続
ローカルマシンがWindows の場合は PuTTY 、Linux の場合は sshコマンドを使って、SSHサーバ1へ接続します。
Windows(PuTTY)の場合
基本は Windows/Linuxでの SSHポートフォワーディングの方法 の「PuTTY の場合」と同じです。
PuTTY 起動後、接続先の指定で SSHサーバ1のホスト名またはIPアドレスを指定します。
ここでは、まだ「開く」ボタンを押さないいでください。
次に画面左側のツリーから、接続-SSH-トンネル を選択し、「源ポート」に ローカルマシンのポート、「送り先」はアドレスが 127.0.0.1 で、ポート番号は図でいう ZZ番を指定し、「追加」ボタンを押します。
アドレスとポートは、「127.0.0.1:12345」のように、「:」でアドレスとポート番号を区切って指定します。
なお、127.0.0.1の部分は「リモートマシンのアドレス」になります。
指定する「リモートマシンのアドレス」は、SSHサーバ1から見たアドレスです。
従って 127.0.0.1 と指定すると、それは SSHサーバ1自身を示します。
最後に「開く」ボタンを押して、SSHサーバ1に接続します。
ログイン画面になるので、ユーザ名とパスワードを入力し、SSHサーバ1にログインします。
これで、ローカルマシンの「源ポート」へのアクセスで、SSHサーバ1を経由して、SSHサーバ1自身にアクセスできます。
SSHサーバ1に接続した画面が開いたままになりますが、このままにして、2段目の接続 へ進みます。
Linux(sshコマンド)の場合
基本は Windows/Linuxでの SSHポートフォワーディングの方法 の「Linuxの sshコマンド の場合」と同じです。
下記のように指定します。
「SSHサーバ1のポート」は、先頭の図でいうポートZZ番 の数値です。
ssh SSHサーバ1のユーザ名@SSHサーバ1のアドレス -L ローカルマシンのポート:127.0.0.1:SSHサーバ1のポート
なお、127.0.0.1の部分は「リモートマシンのアドレス」になります。
指定する「リモートマシンのアドレス」は、SSHサーバ1から見たアドレスです。
従って 127.0.0.1 と指定すると、それは SSHサーバ1自身を示します。
これで、ローカルマシンのポートへのアクセスで、SSHサーバ1を経由して、SSHサーバ1自身にアクセスできます。
sshコマンドにより、SSHサーバ1に接続したままになりますが、このままにして、2段目の接続 へ進みます。
2段目の接続
1段目の接続 によって、SSHサーバ1に接続したコンソールが出たままになっているはずです。
下記のように指定します。
「SSHサーバ2のポート」は、先頭の図でいうポートZZ番 の数値です。
ssh SSHサーバ2のユーザ名@SSHサーバ2のアドレス -L SSHサーバ1のポート:リモートマシンのアドレス:リモートマシンのポート
これで、SSHサーバ1のポートへのアクセスで、SSHサーバ2を経由して、リモートマシンにアクセスできます。
以上、1段目と2段目の接続により、ローカルマシンのポートへのアクセスで、SSHサーバ1とSSHサーバ2を経由してリモートマシンにアクセスできます。
上記の要領で接続するSSHサーバを増やせば、3段以上の多段ポートフォワーディングも可能です。
コメント