既存のプロキシリレー経由で SSH 鍵をスキャンする
ローカル TCP リレーを通じて候補ホスト鍵を収集し、リレーのラベルと実際の SSH ホストの区別を保ちます。
ssh-keyscan は SSH の ProxyCommand オプションを受け付けません。そのため ssh 用に設定したプロキシが、別個のスキャナを自動的に設定するわけではありません。
ひとつの方法は、すでに確立済みのローカル TCP リレーを使うことです。必要なプロキシ認証と CONNECT 交換を完了し、目的の SSH サーバーのバイトストリームを公開します。そのリレーが 127.0.0.1:2222 で待ち受けている場合:
ssh-keyscan -p 2222 127.0.0.1 > candidate.keys
ssh-keygen -lf candidate.keys最初のコマンドが候補鍵を集め、2 番目がそのフィンガープリントを表示します。リレーは HTTP ヘッダーをスキャナに渡すのではなく、プロキシ応答を最後まで消費した後に SSH ストリームを通す必要があります。
出力のホストラベルはローカルリレーのエンドポイントを表します。そのまま追記して、リモートの SFTP ホスト名を指すとみなさないでください。
鍵を known_hosts の実際のホストとポートに関連付ける前に、信頼できる記録か管理者を通じてフィンガープリントを検証してください。ssh-keyscan は到達可能なエンドポイントが提示するものを集めるだけであり、プロキシ接続の成功がその鍵を認証するわけではありません。