Невозможно проверить подпись (openssl)

Я пытаюсь проверить подпись, но получаю сообщение «Не удается загрузить файл ключа». Это сервер CentOS с OpenSSL версии 1.0.2 (22 января 2015 г.).

Ключи генерируются следующим образом:

ssh-keygen -t rsa -f serverkey -N '' -b 2048
mv serverkey serverkey-priv.pem
ssh-keygen -f serverkey.pub -e -m pem > serverkey-pub.pem ; rm -f serverkey.pub

В результате получается serverkey-priv.pem & serverkey- pub.pem

Я подписываю сообщение следующим образом:

openssl dgst -sha256 -sign serverkey-priv.pem -out message.sig message.txt

Файл message.sig создается нормально. Пока все хорошо.

Однако, когда я пытаюсь проверить сообщение с помощью только что сгенерированного файла sig:

openssl dgst -sha256 -verify serverkey-pub.pem -signature message.sig message.txt

я получаю « не удается загрузить файл ключа. »

Что я делаю неверно?

0
задан 10 January 2017 в 20:44
2 ответа

Я получаю существенно другой результат когда я использую

openssl rsa -in serverkey-priv.pem -pubout -out serverkey-pub.pem

, чем когда я использую

ssh-keygen -f serverkey.pub -e -m pem > serverkey-pub.pem

. Файл открытого ключа, созданный openssl rsa -pubout , успешно проверяет сообщение. Похоже, что формат файла ssh-keygen -m pem для открытых ключей несовместим с тем, что ожидает openssl . Фактически, для чтения информации об открытом ключе с помощью команды openssl rsa -text требуется -RSAPublicKey_in , который, похоже, не поддерживается для dgst .

0
ответ дан 24 November 2019 в 05:07

ssh-keygen должен генерировать как открытый, так и закрытый ключи.

Проверьте его с помощью:

ls -l serverkey*
0
ответ дан 24 November 2019 в 05:07

Теги

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