以前、Windows で開発していた頃はよくやっていたのですが、何気に Mac を使うようになってから初めて SSH トンネリングする機会があったのでその備忘録です。
前提条件
次のような接続条件で使う場合とします。
やりたいこと
- ローカルの Mac から、踏み台サーバ(サーバ A)を経由して転送先サーバ(サーバ B)に SFTP でファイル転送する
- ファイル転送ソフトは FileZilla を使用
サーバA
- IPアドレス:203.0.113.1
- ポート:10220
- ユーザー名:hoge
サーバB
- IPアドレス:203.0.113.2
- ポート:22
- ユーザー名:fuga
Mac
- ローカルポート:10022
SSHトンネル(SSHポートフォワード)
Mac のターミナルから SSH ポートフォワーディングします。
今回はローカルフォワードを行うので、下記のような書式で SSH コマンドを実行することになります。
[shell]
ssh -L 【ローカルポート】:【サーバBホストアドレス】:【サーバBポート】 【サーバAユーザー名】@【サーバBアドレス】 -p 【サーバBポート】
[/shell]
先のサーバ環境に合わせるとこういう感じですね。
[shell]
$ ssh -L 10022:203.0.113.2:22 hoge@203.0.113.1 -p 10220
password:(hogeのパスワード入力)
[/shell]
FileZilla
FileZilla で サーバ B への SFTP 接続設定をします。
- ホスト:localhost
- ポート:10022
- Server Type:SFTP
- Logon Type:通常
- ユーザー:fuga
- パスワード:(fugaのパスワード)
特定の通信を暗号化させたい、IP 制限がかかっているサーバに踏み台経由でアクセスしたいなど、SSH は応用範囲が広いので、やり方を知っておいて絶対損はないですね。