opensslを使用してSSH2 RSA秘密鍵を.pemに変換する

opensslを使用してSSH2 RSA秘密鍵を.pemに変換する

SSH2 RSA型ベースの秘密鍵を次のように.pem型に変換しようとするとOpenSSL次のエラーが発生します。

[jbadmin@xxxxxxx .ssh2]$ openssl req -x509 -key /home/jbadmin/.ssh2/id_rsa_2048_a -nodes -days 365 -newkey rsa:2048 -out id_rsa_2048_a.pem
unable to load Private Key
139994671441736:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY

私の秘密鍵:

[[email protected]]$ cat id_rsa_2048_a
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Subject: jbadmin
Comment: "2048-bit rsa, jbadmin@x01bicallapp1a, Tue Dec 29 2015 11:38:\
----------------------------
----------------------------
---- END SSH2 ENCRYPTED PRIVATE KEY ----

もし他の使用できる方法があればお勧めしますOpenSSLまたはSSH-keygen-g3

編集1:次のオプションを試しましたが、まだ同じ問題が発生します。

[jbadmin@x01bicallapp1a .ssh2]$ openssl rsa -outform PEM -in /home/jbadmin/.ssh2/id_rsa_2048_a -out /home/jbadmin/.ssh2/id_rsa_2048_a.pem
unable to load Private Key
140493432293192:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY

答え1

ssh-keygen -pSSH2とPEM形式の間で変換が可能です。

 -m key_format
         Specify a key format for key generation, the -i (import),
         -e (export) conversion options, and the -p change
         passphrase operation.  The latter may be used to convert
         between OpenSSH private key and PEM private key formats.
         The supported key formats are: “RFC4716” (RFC 4716/SSH2
         public or private key), “PKCS8” (PKCS8 public or private
         key) or “PEM” (PEM public key).  By default OpenSSH will
         write newly-generated private keys in its own format, but
         when converting public keys for export the default format
         is “RFC4716”.  Setting a format of “PEM” when generating or
         updating a supported private key type will cause the key to
         be stored in the legacy PEM private key format.

SSH2からPEMへ:

ssh-keygen -p -f id_rsa -m PEM

PEMからSSH2へ:

ssh-keygen -p -f id_rsa -m SSH2

警告する:指定されたファイルを上書きしてその場で更新します!

メモ:ssh-keygen-g3にリンクされていますが、商用製品ssh-keygenより一般的なオープンソースバージョンです。システムから無料で入手でき、Linux、Windows、FreeBSD、PASEなどで動作します。必要に応じて、その機能を備えたシステムで変換を実行できます。 SSH2 / PEMキーは最終的にプレーンテキストファイルにすぎないので、失われないように注意してください。

答え2

解決策:動作させるには、次のコマンドを使用しました。

$ ssh-keygen-g3 --key-format openssh2  --import-private-key /home/jbadmin/.ssh2/id_rsa_2048_a /home/jbadmin/.ssh2/id_rsa_2048_a_openssh.pem
Imported private key in /home/jbadmin/.ssh2/id_rsa_2048_a to /home/jbadmin/.ssh2/id_rsa_2048_a_openssh.pem.

関連情報