Проблема с использованием ключа хоста сервера

У меня есть ключ хоста моего сервера (закрытый ключ) в формате Openssl, который я хочу использовать для аутентификации сервера. Я предпочитаю использовать модель доверия, согласно которой клиентская локальная база данных должна связывать каждое имя хоста с соответствующим открытым ключом хоста. Поскольку ключ формата openssl не поддерживается в архитектуре openssh, я ищу решение, которое должно преобразовать мой закрытый ключ формата openssl в закрытый ключ формата openssh. Благодарим за любую помощь в решении этой проблемы.

0
задан 24 June 2019 в 17:47
1 ответ

На самом деле не ответ, но слишком длинный, чтобы его можно было прочитать в виде комментариев.

Неясно, спрашиваете вы о закрытом или открытом ключе.

OpenSSH поддерживает все 8 (*) форматов PEM для закрытого ключа, используемого OpenSSL. Фактически исторически (поскольку v1 устарела) он генерировал только 6 «традиционных» форматов OpenSSL, но мог также читать 2 формата PKCS8; начиная с версии 6.5 в 2014 г. он поддерживает «новый» формат, определенный OpenSSH (и не совместимый с OpenSSL), но по умолчанию используется это значение по умолчанию только для Ed25519, сохраняя форматы OpenSSL для RSA DSA ECDSA; а с версии 7.8 в 2018 году для всех типов ключей по умолчанию используется «новый», но он все еще может генерировать или преобразовывать в OpenSSL (кроме Ed25519); см. Преобразование ключей между openssl и openssh и еще несколько связанных там. (*) Начиная с версии 7.0 в 2015 году OpenSSH по умолчанию не использует ключи аутентификации DSA в протоколе , если вы не включите их вручную (на обоих концах); об этом уже есть вопросы, IIRC на нескольких стеках. Но он по-прежнему поддерживает создание, преобразование и иное манипулирование файлами ключей DSA , даже если эти файлы в основном бесполезны.

Форматы открытых ключей OpenSSH отличаются от OpenSSL, но начиная с файл закрытого ключа, вы можете просто использовать ssh-keygen -y для создания открытого ключа в формате OpenSSH; это задокументировано на странице руководства. Кроме того, начиная с последней версии 6.0 в 2012 году ssh-keygen -i -m pkcs8 (хотя и неточно назван) может преобразовывать формат, который OpenSSL называет «PUBKEY» (который на самом деле является X.509 SubjectPublicKeyInfo), в формат OpenSSH. Только если вам нужно преобразовать открытый ключ OpenSSL в формат OpenSSH без использования OpenSSH , это будет сложно, и есть вопросы по этому поводу, в основном по stackoverflow (поскольку это на самом деле нетривиально).

2
ответ дан 4 December 2019 в 13:19

Теги

Похожие вопросы