connect: command not found は、SSH が ProxyCommand ヘルパーをローカルで起動できなかったことを意味します。修復すべきプロキシのハンドシェイクはまだ発生していません。この名前は独立した実行ファイルを指す可能性があり、シェルの組み込みコマンドや OpenSSH のサブコマンドではありません。

  1. 選択されているコマンドを特定します。 同じ宛先エイリアスとアカウントに対して有効な SSH 設定を確認します。Host セクション、インクルードされたファイル、コマンドラインオプションによって、編集したファイルとは別の ProxyCommand が選ばれていることがあります。
  2. 実行ファイルの場所を突き止めます。 起動環境の PATH と、ヘルパーが動作する対話的ターミナルの PATH を比較します。意図した既存プログラムへの絶対パスを指定すれば、この曖昧さは解消します。
  3. ヘルパーの実装を合わせます。 nc という名前のバイナリなら何でも代用してはいけません。OpenBSD netcat は HTTP CONNECT に -X connect、SOCKS5 に -X 5 を使います。他の実装ではこれらのオプションやプロキシの認証サポートがない場合があります。

ヘルパーが起動したら、次の失敗を順番に追います。プロキシへの接続、プロキシ交渉、宛先への接続、そして SSH 認証です。ある段階での失敗は、後の段階に問題があることを示すものではありません。

ProxyJump には SSH ジャンプホストが必要です。この構成を置き換えられるのは、そのサービスが利用可能な場合だけです。設定を変えたからといって、HTTP プロキシが SSH のログイン先になるわけではありません。

関連記事