私はopenssl関数で利用可能な公開鍵を生成するのに問題がありますPEM_read_bio_RSA_PUBKEY()
。継続エラーが発生します。
ssh-keygen <>.pub
明らかに、SSHファイル形式や構造化方法のため、キーファイルにASCII文字列を使用することはできませんSubjectPublicKeyInfo
。
以下はキー生成コードです。ssh-keygen -t rsa -b 1024 -C "Test Key"
公開鍵の内容をbase64 PEM ASCII文字列形式に変換するPHPコンバータをオンラインで見つけました。しかし、この機能はまだ気に入っていません。
Opensslのドキュメントには次のように記載されています。
- 「EVP_PKEY構造を使用して公開鍵を処理するRSA_PUBKEY()関数」
- RSA_PUBKEY 関数は RSA 構造を使用して RSA 公開鍵も処理します。
OpenSSH公開鍵をOpenSSL機能が使用する形式に変換するにはどうすればよいですか?
ベストアンサー1
いいね!
だから私は「簡単ですね、わかりました」と思い始めました。知ってみると、私が思ったよりもはるかに多くの意味がありました。
最初の問題は、OpenSSLのマニュアルページによると、man 3 pem
OpenSSLはRSAキーがPKCS#1形式であると予想していることです。明らかに、これはssh-keygenが処理するものではありません。 2つのオプションがあります(検索して)。
OpenSSH v. 5.6以上がある場合(私のラップトップにはありません)、次のコマンドを実行できます。
ssh-keygen -f key.pub -e -m pem
より長期的なアプローチは、SSHキーを個別のコンポーネント(ブログエントリ私はそれらのいくつかがOpenSSHが「排他的」であると非難し(私は「固有」と呼ぶことを好む)、ASN1ライブラリを使用してコンテンツを交換することを発見しました。
幸いなことに、誰かがこれを行うコードを書いています。