JSch использует OpenSSH файл ключа формат (как для открытых, так и для закрытых ключей). Я не нашел спецификации этого формата, но вы можете использовать инструмент OpenSSH ssh-keygen для преобразования ключей из / в другие форматы (и Google покажет другие инструменты для преобразования из / в еще большее количество форматов). ).
Обновление: После запроса в списке рассылки OpenSSH и чтения некоторых RFC похоже, что файл открытого ключа OpenSSH содержит (для ключей версии 2) открытый ключ, как указано в RFC 4253 (раздел 6.6) , только с оберткой по base64 (и типом ключа в качестве префикса, и полем комментария в качестве постфикса). Я до сих пор не нашел спецификации для файла закрытого ключа.
К сожалению, официальной документации для JSch практически не существует, но я написал для нее Javadocs . (Хотя, похоже, не упоминается формат файла ключа ... Я должен это исправить.)
В JSch Wiki есть также Manual , содержащий страницу о аутентификации с открытым ключом (в которой также пока не указан формат ключа: - /).
Файл известных хостов *1022* также имеет тот же формат, что и соответствующий файл клиента OpenSSH. Его формат объяснен на странице руководства OpenSSH sshd , раздел SSH ИЗВЕСТНЫЙ ФОРМАТ ФАЙЛА ХОСТОВ :
Каждая строка в этих файлах содержит следующие поля: маркеры
(необязательно), имена хостов, биты, экспонента, модуль, комментарий. Поля
разделенные пробелами.
На самом деле это верно только для ключей SSH 1 RSA. Для ключей SSH 2 у вас есть идентификатор типа (ecdsa-sha2-nistp256
, ecdsa-sha2-nistp384
, ecdsa-sha2-nistp521
, ssh-dss
или ssh-rsa
), а затем ключ в кодированной форме base-64. (См. Немного в той же странице руководства, для файла авторизованных ключей). (Я думаю, что JSch поддерживает только форматы ключей DSA и RSA, но не ECDSA.)
Обратите внимание, что строки в этих файлах обычно состоят из сотен символов
долго, и вы определенно не хотите вводить ключи хоста вручную.
Скорее, сгенерируйте их с помощью скрипта, ssh-keyscan (1) или взяв
/etc/ssh/ssh_host_key.pub и добавление имен хостов впереди.
ssh-keygen (1) также предлагает базовое автоматическое редактирование для
~ / .ssh / known_hosts, включая удаление хостов, соответствующих имени хоста, и
преобразование всех имен хостов в их хешированные представления.