Linuxでopensslを使用してRSAキーを作成し、Windows PCでも使用できるようにPuTTY形式に変換しようとしています。
openssl genpkey -algorithm RSA-PSS -out myKey.pem -outform PEM -pkeyopt rsa_keygen_bits:2048
キーが生成されました。ちょっと見ましたがcat
大丈夫ですね。
これでPuTTY形式に変換します。
puttygen myKey.pem -o myKey.ppk -O private
次のエラーが発生します。
puttygen: error loading 'myKey.pem': unrecognised key type
次のようにキーを確認してみました。
openssl rsa -in myKey.pem -text
次のエラーが発生します。
140527068488128:error:0607907F:digital envelope routines:EVP_PKEY_get0_RSA:expecting an rsa key:../crypto/evp/p_lib.c:464:
何が起こったのか知っていますか?
答え1
RSAの代わりにRSA-PSSという誤ったアルゴリズムを使用しています。
このコマンドは予想されるキーを生成します。
openssl genpkey -algorithm RSA -out myKey.pem -outform PEM -pkeyopt rsa_keygen_bits:2048
唯一の変更は、を交換するRSA-PSS
ことですRSA
。
特定の秘密鍵に対して、次のように使用されたアルゴリズムを含む、その情報を取得できます。
openssl asn1parse -in myKey.pem
無効なアルゴリズム(SSH用)には、次のような行があります。
9:d=2 hl=2 l= 9 prim: OBJECT :rsassaPss
RSAアルゴリズムは次のようになります。
9:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption