Как пользователь Windows, я сгенерировал пару ключей DSA из CoreFTP Lite и отправил их третьему лицу, работающему с сервером SFTP.

Они сказали мне, что действительный ключ DSA должен иметь ssh-dsa в начале и имя пользователя @ systemname в конце.

CoreFTP не генерирует ни заголовок ssh-dsa, ни нижний колонтитул username @ systemname. Я пытался с WinSCP, и он тоже не генерировал их.

Есть ли разница между тем, как SFTP работает между Windows и Linux?

Если я поставлю useraccount @ systemname в конце текста, это будет работать? Как система Linux проверит, что моя система называется "системное имя"? Если это не может подтвердить, какова цель добавления этого?

2 ответа2

3

Вам необходимо предоставить открытую часть вашей пары ключей в формате, который может распознавать сторонний SFTP-сервер - и в этом случае, похоже, что они хотят формат openssh.

Я не эксперт по формату ключей CoreFTP Lite dsa, но из некоторых случайных обращений Google похоже, что вы можете использовать PuttyGen, чтобы открыть ключ, сгенерированный CoreFTP, а затем экспортировать его как открытый ключ OpenSSH.

3

Есть ли разница между тем, как SFTP работает между Windows и Linux?

Нет. Единственное отличие - ключевые форматы хранения, используемые различными программами. Большинство систем Linux используют OpenSSH в качестве сервера SSH/SFTP, и ваша третья сторона запрашивает открытый ключ, совместимый с OpenSSH.

  • CoreFTP хранит закрытые ключи в формате OpenSSH, а открытые ключи аналогичны OpenSSH.

    Вы можете использовать PuTTYgen или ssh-keygen -yf для извлечения открытого ключа, так как "закрытый" файл всегда содержит всю пару ключей.

    Или вы можете просто добавить « ssh-dss » перед данными открытого ключа CoreFTP, чтобы сделать его OpenSSH-совместимым. Пример:

    ssh-dss AAAAB3NzaC1kc3M...
    

    (Почему CoreFTP забывает заголовок? Возможно, разработчики посчитали это ненужным, поскольку данные, закодированные в Base64, уже имеют ssh-dss в начале. И кроме того, кому когда-нибудь понадобится совместимость с самым популярным программным обеспечением SFTP?)

  • PuTTY использует свой собственный формат ключа "PPK".

    Когда вы открываете ключ в PuTTYgen (или генерируете новый), открытый ключ OpenSSH отображается в большом поле вверху.

    Закрытый ключ можно экспортировать в формат OpenSSH через меню.

  • WinSCP не имеет программы генерации ключей. Он связывает PuTTYgen от PuTTY.

Для полноты:

  • OpenSSH (ssh , ssh-keygen) хранит закрытые ключи в формате "PEM", используемые OpenSSL, и открытые ключи в своем собственном однострочном формате. (Как упоминалось выше, файл "закрытых" ключей содержит как закрытые, так и открытые ключи.)

Они сказали мне, что действительный ключ DSA должен иметь [...] имя пользователя @ systemname в конце.

[...] Если я поставлю useraccount @ systemname в конце текста, это будет работать? Как система Linux проверит, что моя система называется "системное имя"? Если это не может подтвердить, какова цель добавления этого?

Часть username@systemname - это комментарий, используемый для идентификации ключа (например, когда у вас есть 10 ключей в authorized_keys), но он полностью игнорируется программным обеспечением.

Открытые ключи OpenSSH без комментариев являются абсолютно действительными.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .