sshを経由して閉環境内のhttp proxyを利用する

ssh proxy みたいなワードを頑張って組み合わせて検索しても、大体HTTP proxy経由でsshトンネルを掘るという記事が出てきてぱっと見当たらなかったのでメモしておく。

結論から言うと LocalForward の機能を使えばできると。 LocalForwardの説明とかは この辺りチートシートサイトを見てもらえればよいかと。

自分は開発でたまに使いそうだったので .ssh/config に設定を追記してバックグラウンド実行する感じで使いました。

.ssh/config

Host INTERNAL_PROXY
  HostName aaa.bbb.ccc.ddd
  IdentityFile RSA_KEY_PATH
  User USER
  DynamicForward 8080

コマンド

ssh -f -N INTERNAL_PROXY

どこで必要だったのか

仕事でサービス連携とかしていて、稀にIP登録してそのIP以外は受け付けないというサービスがあったりあったりする。 その時に自社が管理する複数のインスタンスからアクセスしたいという場合、自社サービス環境内にproxyを立ててそこ経由でアクセさせるというのは、前述の様な条件のサービスの場合はままあるのではないかと。

で、困るのが開発するときに動作確認がやりにくいという点。 なんとかproxyを経由してアクセスしたいけど、前述の様なproxyをGlobalに公開するようなことはあまりない気がするのでなんとかしないといけない、というのを解決したかったのが動機。