2012-04-22 37 views
78

Lệnh sau sẽ tạo ra một tập tin, trong đó có cả khu vực nhà nước và tư nhân chính:Làm thế nào để trích xuất khóa công khai bằng OpenSSL?

openssl genrsa -des3 -out privkey.pem 2048 

Nguồn: here

Với OpenSSL, khóa riêng chứa các thông tin quan trọng nào là tốt, do đó, một công then chốt doesn không cần phải được tạo riêng biệt

Làm cách nào chúng tôi có thể trích xuất khóa công khai từ tệp privkey.pem?

Cảm ơn.

Trả lời

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

Đó viết khóa công khai để key.pub

+0

Cảm ơn rất nhiều !! – Jake

+0

Bạn được chào đón :) – stewe

+9

Luôn sử dụng tốt hơn tùy chọn nội bộ để thực hiện điều này: '-out', ví dụ: ' openssl rsa -in privkey.pem -pubout -out key.pub' thay vì chuyển hướng stdout thành một tập tin. –

4

Đối với những người quan tâm đến các chi tiết - bạn có thể nhìn thấy những gì bên trong các tập tin khóa công khai (được tạo ra như đã giải thích ở trên), bằng cách làm này: -

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

hoặc cho các tập tin khóa riêng, điều này: -

openssl rsa -noout -text -in key.private 

mà kết quả đầu ra dưới dạng văn bản trên bảng điều khiển các thành phần thực tế của khóa (modulus, exponents, primes, ...)

68

Mặc dù, kỹ thuật trên hoạt động cho trường hợp chung, nó không hoạt động trên các tệp PEM của Amazon Web Services (AWS).

tôi đã tìm thấy trong các tài liệu AWS lệnh công trình sau đây: ssh-keygen -y

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

+30

Cảm ơn. Đây là điều tôi cần. Để bỏ qua lời nhắc, bạn có thể sử dụng 'ssh-keygen -y -f key.pem> key.pub' – makenova

+4

Đây là câu trả lời đúng' ssh-keygen -y -f key.pem' – Justin

+1

Đồng ý 'ssh-keygen -y -f key.pem' là chính xác. – dps

2

Nếu tìm kiếm của bạn làm thế nào để sao chép một Amazon AWS .pem cặp khóa vào một khu vực khác nhau thực hiện như sau:

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

Sau đó,

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

Đầu ra khóa công khai bằng 'openssl' được kẹp trong tiêu đề PEM, mà bạn sẽ phải loại bỏ trước khi AWS CLI chấp nhận Chìa khóa. –

0

Đối với AWS nhập một khóa công khai hiện có,

  1. Export từ .pem nào làm điều này ... (trên linux)

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

này sẽ tạo ra một tập tin mà nếu bạn mở trong trình chỉnh sửa văn bản trông giống như thế này ...

-----BEGIN PUBLIC KEY----- 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/8y3uYCQxSXZ58OYceG 
A4uPdGHZXDYOQR11xcHTrH13jJEzdkYZG8irtyG+m3Jb6f9F8WkmTZxl+4YtkJdN 
9WyrKhxq4Vbt42BthadX3Ty/pKkJ81Qn8KjxWoL+SMaCGFzRlfWsFju9Q5C7+aTj 
eEKyFujH5bUTGX87nULRfg67tmtxBlT8WWWtFe2O/wedBTGGQxXMpwh4ObjLl3Qh 
bfwxlBbh2N4471TyrErv04lbNecGaQqYxGrY8Ot3l2V2fXCzghAQg26Hc4dR2wyA 
PPgWq78db+gU3QsePeo2Ki5sonkcyQQQlCkL35Asbv8khvk90gist4kijPnVBCuv 
cwIDAQAB 
-----END PUBLIC KEY----- 
  1. Tuy nhiên AWS sẽ KHÔNG chấp nhận tệp này.

    Bạn phải bỏ qua số -----BEGIN PUBLIC KEY----------END PUBLIC KEY----- từ tệp. Lưu và nhập và nó sẽ hoạt động trong AWS.

Các vấn đề liên quan