Я пытаюсь проверить подпись, но получаю сообщение «не удается загрузить файл ключа». Это сервер 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
Я получил "невозможно загрузить ключевой файл."
Что я делаю не так?
ssh-keygen должен генерировать как открытый, так и закрытый ключи.
Проверьте это с помощью:
ls -l serverkey*
Когда я использую
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's -m pem
формат файла для открытых ключей несовместим с openssl
ожидает. Фактически, чтение информации об открытом ключе с openssl rsa -text
команда требует -RSAPublicKey_in
который, похоже, не поддерживается для dgst
.