web-dev-qa-db-ja.com

OpenSSLを使用して公開キーを抽出する方法

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

openssl genrsa -des3 -out privkey.pem 2048

ソース: here

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

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

ありがとう。

106
Jake
openssl rsa -in privkey.pem -pubout > key.pub

それは公開鍵をkey.pubに書き込みます

171
stewe

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

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

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

edit行全体をありがとう@makenova:

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

詳細に興味のある人のために-あなたはこれをすることで公開鍵ファイルの中身を見ることができます(上で説明したように生成されます):

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

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

openssl rsa -noout -text -in key.private

キーの実際のコンポーネント(モジュラス、指数、素数など)をコンソール上のテキストとして出力します

4
cnd

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
Justin

既存の公開キーをインポートする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で動作するはずです。

1
Bendo