はじめに
今更ですがsshポートフォワーディングについて理解が不足していたので、まとめたいと思います。今回実施するのはローカルポートフォワーディングです。つまり接続したいサーバポートにローカルポートを繋ぎます。
- PC-A
- ローカル端末
- SV-A
- 目的地サーバ
- SV-B
- 踏み台サーバ
例えばPC-AからSV-Aに接続したいけど直接は接続出来ないという状況が往々にしてあります。しかしSV-BからSV-Aには接続が可能で、PC-AもSV-Bには接続が可能です。そこでPC-AのポートをSV-Bを踏み台にしてSV-Aのポートに転送します。
コマンド
ローカル端末から下記コマンドを実行します。
$ ssh -i 【秘密鍵】 【踏み台サーバユーザ】@【踏み台サーバホスト名】 -L 【ローカルポート】:【目的地サーバホスト名】:【目的地サーバポート】
- 秘密鍵がない場合は省略してパスワードを入力
- ローカルポート
- 10000(?)以下は管理者権限で実行
- 今回は仮に10022とします
成功したら踏み台にログインすると思います。別タブでターミナルを開き下記コマンドを実行します。
$ ssh -i 【秘密鍵】 【目的地サーバユーザ】@localhost -p 10022
ワンライナー
コンフィグによる設定もまとめる予定です。
Host fWeb
HostName 【踏み台サーバホスト名】
User centos
LocalForward 【ローカルポート】 【目的地サーバホスト名】:【目的地サーバポート】
IdentityFile 【秘密鍵】
下記コマンドを実行します。
$ ssh fWeb
同様に踏み台サーバにログインしますので別タブから転送したローカルポートに接続して下さい。以上です。