踏み台を介さないと通信できないサーバに対して
TeraTermでSSH転送(ポートフォワード)してから
WinSCPでファイルを転送する方法です。
A:ローカル
B:踏み台
C:リモートホスト
だとすると、
AからCにファイルを転送することができます。
僕自身、恥ずかしいことに、インフラに携わっていながらこのやり方を
知らなかった理由は
2つのアプリが設定を共有するという事実が想定外だったからです。
同じく知らない方のためにやり方をご説明します。
###◆手順
①TeraTermで設定を行う
②WinSCPで設定を行う
③ファイルを転送する
とっても簡単です!
図にするとこんな感じです▼
自分のPC: localhost 踏み台サーバ: 172.20.0.1 目的のサーバ: 124.68.0.1
この環境でSSH転送をしてローカルから目的のサーバ(124.68.0.1)に
WinSCPでファイル転送します。
※尚、踏み台サーバと目的のサーバは同一セグメントのプライベートIPが
振られている必要がある、、、と思います。
###◆設定方法
####①TerraTermでSSH転送設定する
TeraTerm > 設定 > SSH転送 > 追加
・ローカルのポート: xx22(末尾22の任意の番号)
・リモート側ホスト: 目的のサーバのグローバルIP
・ポート: 22
上記の様に設定を投入。
完了したらOKします。
※TeraTermを複数開いている場合は、どのウィンドウで設定を行っても構いません。
ただし、セッションを終了あるいはxボタンでウィンドウを閉じると設定も消えます。
従って、設定を投入したウィンドウは、誤ってexitしてしまわないように
設定ダイアログもそのまま開いておくことをオススメします。
####②WinSCPで設定を行う
続いてWinSCPでセッションとトンネル設定を行います。
セッション設定
・転送プロトコル: SFTP
・ホスト名: 踏み台サーバのプライベートIP
・ポート番号: 22
・ユーザ名: 踏み台サーバの管理ユーザ
・パスワード: 踏み台サーバのパスワード
トンネル設定
設定 > 接続 > トンネル(バージョンによっては”詳細設定から”)
・「SSHトンネルを経由して接続」を選択
・ホスト名: localhost
・ポート番号: 6022
・ユーザ名: ローカルの管理者
・パスワード: ローカルのパスワード
以上です。
これにより、TeraTermで指定した6022番ポートを使って
WinSCPもファイル転送ができるようになります。
WinSCPでも”トンネル”という設定があるため
「WinSCPで接続できない~!」という躓き方をした僕にとっては
実はTeraTermでの設定が必要だったというのは意表を突かれました。
僕だけなんでしょうか??
※未熟な者で、何か間違いがあったら教えて頂けると幸甚です。