FileZilla FTP クライアントのキー キャッシュから SFTP SSH キーを抽出する方法
質問
FileZilla を使用して SFTP 経由でサーバーに接続し、サーバーの SSH キーを FileZilla のキー キャッシュに追加することに同意しました。
このキャッシュされたキーをキーファイルに抽出して、キーファイルを使用できるようにする必要がある他の SFTP アプリケーションで使用できるようにするにはどうすればよいですか?
FileZilla のドキュメントにはこれに関連するものが見つかりませんでした。
解決
標準の openssh コンソール クライアント (cygwin または Linux) を使用する場合、ホスト キーは 1 行に 1 つずつ ~/.ssh/known_hosts に保存されます。そこから、ホスト キーのどのビットがライブラリに必要かを判断するのは簡単です。
Putty もホスト キーを保存しますが、ホスト キーは 16 進数でエンコードされているようです。これらは HKCUR\Software\SimonTatham\PuTTY\SshHostKeys にあります。
他のヒント
トーマスは正しかった。FileZilla は PuTTY の PSFTP プログラムを利用し、保存されたキーを 16 進形式でエンコードして、彼がリストしたレジストリ キー (HKCUR\Software\SimonTatham\PuTTY\SshHostKeys) に保存します。known_hosts 形式のキーが必要だったので、 openssh の Windows バージョン 彼の推奨に従い、ssh-keyscan ツールを使用してサーバーにアクセスし、キー情報を正しい形式で保存しました。
ssh-keyscan -t rsa <my_ftp_ip_address> > c:\known_hosts
ssh-keyscan -t dsa <my_ftp_ip_address> > c:\known_hosts
トーマスとSO、ありがとう!
ダグマンさん、ヒントをありがとう!
あなたの回答を読む初心者をさらに助けるため。
ssh-keyscan を実行する前に、openssh がデフォルトでインストールされていると仮定すると、実行する必要のあるコマンドがいくつかあります (詳細については、クイックスタート/readme インストールを読んでください)。
ホストキーを取得できるコマンドは次のとおりです。
C:\Program Files\OpenSSH\bin>mkgroup -l >> ..\etc\group
C:\Program Files\OpenSSH\bin>mkpasswd -l >> ..\etc\passwd
C:\Program Files\OpenSSH\bin>net start opensshd
The OpenSSH Server service is starting.
The OpenSSH Server service was started successfully.
C:\Program Files\OpenSSH\bin>ssh-keyscan -t rsa vivo.sg.m.com > c:\known_hosts
vivo.sg.m.com SSH-2.0-Sun_SSH_1.1
GUI を使用したい場合は、ログ ウィンドウまたは WinSCP FTP クライアントを使用した初回接続ポップアップからホスト キーを取得できます。 https://winscp.net/eng/docs/ssh_verifying_the_host_key
私があなたを誤解していない限り:その必要はありません。
別のアプリケーションを使用してサーバーに接続する場合 (例:PuTTY)、それまでにサーバーを認識していない場合は、キーを受け入れるように求められます。
これを実行したい理由はわかりますが、各アプリケーションにはキーを保存する独自の方法がある可能性があります。