HTTPプロキシ経由でSSHに接続する
既存のHTTP CONNECTプロキシを通して、ホストごとのProxyCommandでSSH接続を運びます。
OpenBSD互換のncを使い、このホストエントリをSSHクライアント設定(例: ~/.ssh/config)に追加します:
Host work-through-proxy
HostName ssh.example.com
User alex
ProxyCommand nc -X connect -x proxy.example.net:8080 %h %pその経路にはssh work-through-proxyを使います。ヘルパーはHTTPプロキシにssh.example.comへのCONNECTを要求し、受け入れられたストリームをSSHへ渡します。SSHをプロキシのポートへ直接向けると、ハンドシェイクはHTTPを期待するサービスへ届いてしまいます。
エンドポイント、接続先、アカウントを置き換えます。公開された中間者が許される公衆到達可能なSSH接続先では、HTTPプロキシ一覧がそのホストとポートへのアクセスを確認する候補を提供します。示されたコマンドにプロキシアカウントを必要としないエンドポイントを選んでください。これらのOpenBSD ncのオプションは実装依存です。ncという名前の別の実行ファイルは対応していないかもしれません。
プロキシが独自のログインを要求したり、要求したSSHポートを拒否したりすることがあります。407はそのプロキシとのやり取りに関するものです。トンネルが開いた後も、SSHは接続先ホストを検証しユーザーを認証します。SSH鍵の拒否は別の失敗です。
ProxyCommandは目的のHostセクションに置き、必要に応じて選択したヘルパーが対応するプロキシ認証経路を使ってください。このコマンドが与えるのはストリームであり、中間者を通す許可ではありません。HTTPSの接続先しか許されない場合は、コマンドの別の書き方で方針が変わると思い込まず、承認されたSSHアクセスの取り決めを取得してください。