概要
各sshクライアントで多段sshポートフォワーディングのやり方をまとめました。
今回は以下の図のように複数の踏み台サーバの先にいるWindowsにリモートデスクトップ接続(3389番ポート)できるようにします。
RLoginの場合
踏み台Aに接続する設定と踏み台Bに接続する設定の二つを作っていきます。
やってることは多段SSH接続してポート転送するだけです。
- 踏み台Aへの接続
まずは踏み台Aに普通のssh接続の設定をします。踏み台A用の接続設定を新規に作成してください。
SOCKS プロキシの設定をします。ポート番号は何でも大丈夫です。
以上で踏み台Aの設定は終了です。
- 踏み台Bへの接続
踏み台B用の接続設定を新規に作成してください。
ここで画像右上の前接続先に踏み台Aの接続設定のエントリー名を入力してください。全ての設定を入力し終わったらProxy Serverの設定を行います。
プロキシの設定です。ポート番号は踏み台Aのポートフォワーディング設定で使用したものです。
ここまでで踏み台BにSSHはできるようになっています。
続いて踏み台Bにもポートフォワーディング設定をします。ここでlocalhost側のポート番号は自席PCで使用していない適当な番号、192.168.20.1(リモデしたいWindows)はリモデが接続するポート番号(デフフォルトは3389)です。
以上で終了です。手元のPCから接続先を「localhost:12312」とすることでリモートデスクトップ接続ができます。
Puttyの場合
まずは踏み台Aに普通にsshする設定をします。
次に踏み台Bへの接続設定です。同時に踏み台AからB経由でのWindowsマシンへのポート転送をしています。
ssh -L <踏み台Aのポート番号(任意)>::<リモデのポート番号> -g <踏み台Bへのssh接続ユーザ>@<踏み台BのIP>
です
最後に手元のPCから踏み台Aへの転送設定です。送り先に設定しているのは<踏み台のローカルアドレス>:<先ほど設定したポート番号>
です。先ほどと同じく手元の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」とすることでリモートデスクトップ接続ができます。