SSHトンネリングとは
SSHトンネリングは、SSHポートフォワーディングとも言われる接続方法です。
例えば、とあるLAN内で公開されているWebサーバに対して、外部NWから接続したい時に、外部公開しているSSHサーバが存在している場合、SSHサーバとのSSH接続を経由して、目的のWebサーバに接続するといった接続方法のことです。
詳しくは、以下のURLを参照のこと。
SSHポートフォワーディング(トンネリング)とは - 小粋空間
https://www.koikikukan.com/archives/2016/09/15-000300.php
基本的に備忘録なので、分かりにくかったらゴメンナサイ。
多段SSH
コマンド
local$ ssh user@step_host -i <秘密鍵> -p <ポート>
step_host$ ssh user@target_host -i <秘密鍵>
Config
Host STEP_HOST
HostName step_host
Port <ポート>
IdentityFile <秘密鍵>
User user
Host TARGET_HOST
HostName target_host
IdentityFile <秘密鍵>
User user
ProxyCommand ssh -CW %h:%p STEP_HOST
これで、ssh TARGET_HOST
のみで接続できる
DynamicForward
LAN内のWebサーバにSSH経由で接続する際に用いている
コマンド
$ ssh user@step_host -D <ローカルポート> -i <秘密鍵>
Config
Host STEP_HOST
HostName step_host
IdentityFile <秘密鍵>
User user
DynamicForward <ローカルポート>
上記のコマンド or Config経由でLAN内のWebを閲覧するにはSOCKS Proxyを使います。
私は、Chromeユーザなので、Chromeを使った際の接続方法
ExtensionのProxy SwitchySharpを導入
https://chrome.google.com/webstore/detail/proxy-switchysharp/dpplabbmogkhghncfbfdeeokoefdjegm?hl=ja-JP
設定画面で、Profile Name, SCOKS Host, Portを入力し、SOCKS v5ラジオボタンを選択してSaveする。
アドレスバーの横にExtensionの地球儀の様なマークが出るので、そこで設定したProfileを選択して、LAN内のWebサービスのURLやIPアドレスなどをChromeのアドレスバーに入力すれば接続できるはず。
LocalForward
LAN内で運用している特定サービス(私の場合Elasticsearch)に接続する際に用いている
コマンド
$ ssh user@step_host -i <秘密鍵> -L <ローカルポート>:<target_host>:<ターゲットポート>
Config
Host STEP_HOST
HostName step_host
IdentityFile <秘密鍵>
User user
LocalForward <ローカルポート> <target_host>:<ターゲットポート>
LAN内に置いてあるElasticsearchからデータを取る時に、http://localhost:<ローカルポート>
みたいに使っている。