ちょっと前に Golangでsshの多段プロキシSocks5プロキシ経由での接続について調べたが、今回はhttpプロキシ経由の場合どうするのかについて調べてみた。

残念ながらhttpプロキシ経由の通信(CONNECTメソッドを利用したプロキシ)で*net.Connを取得できるライブラリは無いようで、そのあたりについては書かないとならないようだ。 幸いにも サンプルコード を書かれている人がいたので、それを使ってhttpプロキシを経由したssh接続のコードを記載する。

実行可能なコードはこちらにもおいてある。

ssh_term_http_proxy.go
...

Golangでsshへの接続を行う際、ssh proxyはどうやってやるんだろうと思ったんで調べてみた。 実装は結構簡単で、以下のように一度Proxyにsshでログイン後、ログイン対象サーバへの接続をProxyで作成してやるという流れでいけるようだ。

抜粋。動作するコードはこちらに記載。

ssh_term_proxy.go
// proxy1の情報 proxy1Host := "proxy1.host.local" proxy1Port := "22" proxy1User := "user" proxy1Pass := "pass...