Как извлечь SSH-ключ SFTP из кэша ключей в FTP-клиенте FileZilla
Вопрос
Я подключился к серверу через SFTP с помощью FileZilla и согласился добавить SSH-ключ сервера в кэш ключей в FileZilla.
Как я могу извлечь этот кэшированный ключ в ключевой файл, чтобы использовать его через другие SFTP-приложения, которым требуется, чтобы ключевой файл был доступен?
Я не смог найти ничего в документации FileZilla, связанного с этим.
Решение
Если вы используете стандартный консольный клиент openssh (cygwin или из linux), ключи хоста хранятся по одному в строке в ~/.ssh/known_hosts.После этого остается просто выяснить, какой бит этого ключа хоста необходим для вашей библиотеки.
Putty также хранит ключи хоста, но, похоже, он кодирует их в шестнадцатеричном формате.Их можно найти по адресу HKCUR\Software\SimonTatham\PuTTY\SshHostKeys
Другие советы
Томас был прав.FileZilla подключается к программе PSFTP от PuTTY и сохраняет сохраненные ключи, закодированные в шестнадцатеричном формате, в указанном им разделе реестра (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
Спасибо тебе, Томас, и ТАК ДАЛЕЕ!
Спасибо Дугману за совет!
Чтобы еще больше помочь всем новичкам, читающим ваш ответ.
Перед запуском ssh-keyscan, предполагая, что openssh установлен по умолчанию, необходимо выполнить несколько команд (подробнее читайте установку quickstart / 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
Если вы предпочитаете использовать графический интерфейс, вы можете получить ключ хоста из окна журнала или всплывающего окна при первом подключении с помощью WinSCP FTP client: https://winscp.net/eng/docs/ssh_verifying_the_host_key
Если только я вас не неправильно понял:тебе это и не нужно.
Если вы подключаетесь к серверу с помощью другого приложения (т.е.:PuTTY) и он не видел сервер до этого, после чего вам будет предложено принять ключ.
Я понимаю, почему вы, возможно, захотите это сделать, но у каждого приложения может быть свой собственный способ хранения ключей.