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 に使えるとは限りません。

ホスト鍵の検証は有効なままにしてください。プロキシは経路を提供するものであり、ファイルサーバーの身元を自分の身元で置き換えるべきではありません。

関連記事