Help us understand the problem. What is going on with this article?

各SSHクライアント(RLogin、Putty、Tera Term)で複数台の踏み台を超えてポートフォワーディングする方法のまとめ。

More than 1 year has passed since last update.

概要

各sshクライアントで多段sshポートフォワーディングのやり方をまとめました。
今回は以下の図のように複数の踏み台サーバの先にいるWindowsにリモートデスクトップ接続(3389番ポート)できるようにします。

概要図.png

RLoginの場合

踏み台Aに接続する設定と踏み台Bに接続する設定の二つを作っていきます。
やってることは多段SSH接続してポート転送するだけです。

  • 踏み台Aへの接続

まずは踏み台Aに普通のssh接続の設定をします。踏み台A用の接続設定を新規に作成してください。
rlogin踏み台A.PNG

次にプロトコル設定からポートフォワーディング設定をします。
プロトコル.PNG

SOCKS プロキシの設定をします。ポート番号は何でも大丈夫です。
rlogin踏み台A-2.PNG

以上で踏み台Aの設定は終了です。

  • 踏み台Bへの接続

踏み台B用の接続設定を新規に作成してください。
ここで画像右上の前接続先に踏み台Aの接続設定のエントリー名を入力してください。全ての設定を入力し終わったらProxy Serverの設定を行います。

rlogin踏み台B-1.PNG

プロキシの設定です。ポート番号は踏み台Aのポートフォワーディング設定で使用したものです。

rlogin踏み台B-4.PNG

ここまでで踏み台BにSSHはできるようになっています。
続いて踏み台Bにもポートフォワーディング設定をします。ここでlocalhost側のポート番号は自席PCで使用していない適当な番号、192.168.20.1(リモデしたいWindows)はリモデが接続するポート番号(デフフォルトは3389)です。

rlogin踏み台B-2.PNG
rlogin踏み台B-3.PNG

以上で終了です。手元のPCから接続先を「localhost:12312」とすることでリモートデスクトップ接続ができます。

Puttyの場合

まずは踏み台Aに普通にsshする設定をします。

putty-1.PNG

次に踏み台Bへの接続設定です。同時に踏み台AからB経由でのWindowsマシンへのポート転送をしています。

ssh -L <踏み台Aのポート番号(任意)>::<リモデのポート番号> -g <踏み台Bへのssh接続ユーザ>@<踏み台BのIP>

です

putty-2.PNG

最後に手元のPCから踏み台Aへの転送設定です。送り先に設定しているのは<踏み台のローカルアドレス>:<先ほど設定したポート番号>

putty-3.PNG

です。先ほどと同じく手元のPCから接続先を「localhost:12312」とすることでリモートデスクトップ接続ができます。

Tera Termの場合

マクロで接続するようにします。
以下の内容のteraterm.ttlファイルを作成してTeraTermのマクロとして実行してください。(もっと簡単に書けるはず...)

; 手元のマシンの情報
localport = '12312'

; 踏み台Aの情報
username01 = 'root'
hostname01 = '192.168.0.1'
userpasswd01 = 'password'
portnum01 = '10022'


; 踏み台Bの情報
username02 = 'root'
hostname02 = '192.168.10.1'
userpasswd02 = 'password'

; リモートデスクトップのポート番号
portnum02 = '3389'
hostname03 = '192.168.20.1'


command = hostname01
strconcat command ':22 /ssh -L '
strconcat command localport
strconcat command ':127.0.0.1:'
strconcat command portnum01
strconcat command ' /ssh /auth=password /user='
strconcat command username01
strconcat command ' /passwd='
strconcat command userpasswd01

connect command

wait '$'

command = 'ssh -L '
strconcat command portnum01
strconcat command ':'
strconcat command hostname03
strconcat command ':'
strconcat command portnum02
strconcat command ' -g '
strconcat command username02
strconcat command '@'
strconcat command hostname02

sendln command

wait 'password'
sendln userpasswd02

先ほどと同じく手元のPCから接続先を「localhost:12312」とすることでリモートデスクトップ接続ができます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした