SFTP に SSH プロキシ経由の経路を再利用させる
SFTP 用に SSH のホストエントリを使い、HTTP プロキシのポートと接続先の SSH ポートを分けて扱います。
SFTP は SSH 上を流れます。SSH がファイルサーバーに到達するためにプロキシヘルパーを必要とするなら、その経路をホストエントリに書き、SFTP にそれを使わせます。
Host files-via-proxy
HostName files.example.net
User alex
ProxyCommand nc -X connect -x proxy.example.net:8080 %h %p
OpenBSD 互換の netcat ヘルパーがあれば、sftp files-via-proxy はその接続経路を使います。プロキシは 8080 で待ち受け、要求される接続先ポートはファイルサーバーに設定された SSH ポートです。両者は別の値です。公的な中継が許される公開 SFTP サーバーでは、HTTP プロキシ一覧がヘルパーの HTTP プロキシ端点の候補を提供します。認証のない候補にはプロキシ資格情報を使わず、ファイルサーバーの実際のホストと SSH ポートを許可することを確認してください。
SFTP の -P は接続先ポートを選びます。他の SSH ツールが使う小文字のオプションと混同しないでください。また、接続先の後ろに任意の数字を書いて SSH 接続が変わると思わないでください。
プロキシ認証、SSH ユーザー認証、リモートファイルへのアクセス許可は別々の確認です。接続先は SFTP サブシステムも提供している必要があります。トンネルが通るだけではファイルセッションは得られず、転送専用に制限されたアカウントが SFTP に使えるとは限りません。
ホスト鍵の検証は有効なままにしてください。プロキシは経路を提供するものであり、ファイルサーバーの身元を自分の身元で置き換えるべきではありません。