はじめに
恥ずかしながら 5 年目になっても sshトンネルをやったことが無かったのでやってみました。
環境
- Windows10
- Git Bash
sshトンネルとは
sshトンネルは sshポートフォワーディングとも言われており、
ポートフォワーディングは主に ssh を使って行われることが多く、
ssh を使ってポートフォワーディングを行うことを
特に sshポートフォワーディング( sshトンネル)と言うらしいです。(伝われ)
実際にやってみる
ssh が実際に出来るサーバを用意します。
何でも良かったので今回は AWS の EC2 で安い Amazon Linux サーバを立てました。
$ ssh -i id_rsa.pem ec2-user@203.0.113.1
-> ログインできる
次にローカル(Git Bash)で実際にポートフォワーディングをやってみます。
$ ssh -L 12345:localhost:80 ec2-user@203.0.113.1 -i id_rsa.pem
ローカルでアクセスしてみましょう。
$ curl http://localhost:12345
-> 203.0.113.1:80 の中身が確認できる。
もし確認出来なければリモートに Apache とか入れてみてください。
何が良いの?
ここまでだと AWS のセキュリティで 80 番を開けて
203.0.113.1:80 にアクセスすればローカルで確認出来るため、何が良いのか分からないですよね?
sshポートフォワーディングを行うことで以下のメリットがあります。
- ssh プロトコルを使用することで通信を暗号化出来る。(上記では 80 を経由しています)
- ssh ポートがあればローカルで確認することが出来る。
- 踏み台サーバを経由してリモートアクセスが出来る。
踏み台サーバを経由すると例えば以下のようになります。
$ ssh -L 12345:localhost:8080 -L 8080:localhost:9080 ec2-user@203.0.113.1