LoginSignup
23
33

More than 5 years have passed since last update.

SSHポートフォワードで多段RDP接続してみる

Posted at

先日ちょっと必要になって調べたので、他にも記事はありますが書いて覚えるという意味でちょっと書いてみます。

SSHポートフォワードとは

※あくまでイメージです
SSHでトンネルを掘ってその中に好きなもの(この場合RDP3389)を通す方法。
スライド4.PNG
図の例でいえばLinux2のセグメントにある他のマシンにもLinux2からアクセスできるのであればアクセス可能。

必要なもの

  1. クライアントPC(Windows1)
  2. 踏み台になるPCとか(Linux1)
  3. もう一回踏み台になるPCとか(Linux2)
  4. 接続先PC(Windows2)

※SSH接続する際の証明書かパスワードは分かっていることとする、Windowsも同様

とりあえず1段で試してみる

クライアントPCはWindowsなのでTeraTermを使います。
2019-02-20.png
OKをクリック
2019-02-20 (1).png
上記のようにして1段目のLinux1にSSH接続しておく。
その後、もう一つTeraTermを開き、127.0.0.1:10022に接続。すると2段目の踏み台であるLinux2に繋がります。
スライド1.PNG
SSHトンネルが通常の接続、青線がポートフォワードによるSSHです。

では2段回で接続

さて、2段目のLinux2にダイレクトに行けたところでRDPは使えません。ではどうするか。
まず一回目は以下のようにします。先ほどと違うのは2段目のLinux2でなく1段目のLinux1自身を指しているところがミソです。
2019-02-20 (2).png
OKをクリック
2019-02-20 (1).png
次に上記設定で1段目のLinux1に接続します。
そして接続したLinux1上で以下のコマンドを叩きます。
※ホスト名等は環境によって合わせてください

Linux1上で
ssh user@linux2 -L 13389:windows2:3389

これでLinux1からLinux2へのトンネルが掘れました。
ここまでのイメージはこんな感じ。
スライド2.PNG
さぁ、Windows1からリモートデスクトップクライアントを立ち上げ、127.0.0.1:13389に接続してみましょう。
2019-02-20 (4).png
できましたか?

動作イメージとしてはこんな感じです。
スライド3.PNG
Windows1の13389からLinux1の13389へ行き、Linux1の13389からWindows2への3389につながります。

出来ない場合はトンネルがつながっていないか、どこかで設定が間違っている場合があるので一個ずつ確認してみてください。

ちなみにこれはルーターでポートフォワードされていても問題ありません。
そのような場合は以下のようになります。

ssh -i 証明書のパス user@ルーターのIP -p 待ち受けポート - L 13389:127.0.0.1:13389
ssh -i 証明書のパス user@linux2 -L 13389:windows2:3389
スライド5.PNG

23
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
33