OpenSSLを使用して公開鍵を抽出する方法は?


120

次のコマンドは、公開鍵と秘密鍵の両方を含むファイルを生成します。

openssl genrsa -des3 -out privkey.pem 2048

出典:こちら

OpenSSLでは、秘密鍵に公開鍵の情報も含まれているため、公開鍵を個別に生成する必要はありません。

privkey.pemファイルから公開鍵を抽出するにはどうすればよいですか?

ありがとう。


このオンラインツールはクールです8gwifi.org/pempublic.jsp
完了

回答:


188
openssl rsa -in privkey.pem -pubout > key.pub

それは公開鍵を key.pub


23
これを行うには、常に内部オプションを使用することをお 勧めします。-out例:openssl rsa -in privkey.pem -pubout -out key.pubstdoutをファイルにリダイレクトする代わりに。
ファンアントニオ

138

上記の手法は一般的なケースで機能しますが、Amazon Web Services(AWS)PEMファイルでは機能しませんでした。

私はAWSドキュメントで次のコマンドが機能することを見つけました: ssh-keygen -y

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

完全な行を編集してくれてありがとう@makenova:

ssh-keygen -y -f key.pem > key.pub

38
ありがとう。これは私が必要としていることです。プロンプトをスキップするには、次のssh-keygen -y -f key.pem > key.pub
コマンド

5
これが正解ですssh-keygen -y -f key.pem
ジャスティン

1
これはパスフレーズの入力を求めていますが、パスフレーズは入力していませんでした
kavain

1
@makenovaこれによりでキーが再生成さkey.pem、そのキーを必要とするインスタンスにログインできなくなる可能性があります。
提出済み

@kavainと同じ問題が発生し、入力しなかったパスフレーズを要求され、で鍵を使用してssh -iいる場合は、公開鍵ではなく秘密鍵にリンクして
aexl

5

詳細に興味のある人のために-これを行うことで、公開鍵ファイル(上記で説明したように生成された)の内容を確認できます。

openssl rsa -noout -text -inform PEM -in key.pub -pubin

または秘密鍵ファイルの場合、これは:-

openssl rsa -noout -text -in key.private

キーの実際のコンポーネント(係数、指数、素数など)をコンソールにテキストとして出力します。


2

Amazon AWS .pemキーペアを別のリージョンにコピーする方法を検討している場合は、以下を実行してください。

openssl rsa -in .ssh/amazon-aws.pem -pubout > .ssh/amazon-aws.pub

その後

aws ec2 import-key-pair --key-name amazon-aws --public-key-material '$(cat .ssh/amazon-aws.pub)' --region us-west-2

2
によって公開された公開キーopensslはPEMヘッダーに挟まれており、AWS CLIがキーを受け入れる前に削除する必要があります。
JP

2

AWSが既存の公開鍵をインポートする場合、

  1. これを行う.pemからエクスポート...(Linuxの場合)

    openssl rsa -in ./AWSGeneratedKey.pem -pubout -out PublicKey.pub
    

これは、次のようなテキストエディターで開くとファイルを生成します...

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/8y3uYCQxSXZ58OYceG
A4uPdGHZXDYOQR11xcHTrH13jJEzdkYZG8irtyG+m3Jb6f9F8WkmTZxl+4YtkJdN
9WyrKhxq4Vbt42BthadX3Ty/pKkJ81Qn8KjxWoL+SMaCGFzRlfWsFju9Q5C7+aTj
eEKyFujH5bUTGX87nULRfg67tmtxBlT8WWWtFe2O/wedBTGGQxXMpwh4ObjLl3Qh
bfwxlBbh2N4471TyrErv04lbNecGaQqYxGrY8Ot3l2V2fXCzghAQg26Hc4dR2wyA
PPgWq78db+gU3QsePeo2Ki5sonkcyQQQlCkL35Asbv8khvk90gist4kijPnVBCuv
cwIDAQAB
-----END PUBLIC KEY-----
  1. ただし、AWSはこのファイルを受け入れません。

    あなたはファイルからとファイルから取り除く必要が-----BEGIN PUBLIC KEY-----あり-----END PUBLIC KEY-----ます。保存してインポートすれば、AWSで動作するはずです。


4
ssh-rsa AAAAB3NzaC1y....実行するためにこのフォーマットを変換する必要がある場合:ssh-keygen -f PublicKey.pub -i -mPKCS8
Rafael Milewski
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.