OpenSSL kullanarak genel anahtar nasıl çıkarılır?


120

Aşağıdaki komut, hem genel hem de özel anahtar içeren bir dosya oluşturur:

openssl genrsa -des3 -out privkey.pem 2048

Kaynak: burada

OpenSSL ile özel anahtar, genel anahtar bilgilerini de içerir, bu nedenle bir ortak anahtarın ayrı olarak oluşturulması gerekmez.

Public anahtarı privkey.pem dosyasından nasıl çıkarabiliriz?

Teşekkürler.


Bu çevrimiçi araç harika 8gwifi.org/pempublic.jsp
anish

Yanıtlar:


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

Açık anahtarı yazan key.pub


23
Bunu yapmak için dahili seçeneği kullanmak her zaman daha iyidir: -outörneğin: openssl rsa -in privkey.pem -pubout -out key.pubstdout'u bir dosyaya yönlendirmek yerine.
Juan Antonio

138

Yukarıdaki teknik genel durum için işe yarasa da Amazon Web Services (AWS) PEM dosyalarında çalışmadı.

AWS belgelerinde aşağıdaki komutun çalıştığını buldum: ssh-keygen -y

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

edit Teşekkürler @ makenova tüm satır için:

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

38
Teşekkürler. Bu ihtiyacım olan şey. ssh-keygen -y -f key.pem > key.pub
Komut

5
Doğru cevap bussh-keygen -y -f key.pem
Justin

1
bu benden bir parola istiyor ama parola
koymadım

1
@makenova Bu , anahtarı yeniden oluşturacak ve key.pembu anahtar gerektiren örneklerde oturum açmanızı engelleyecektir!
SubmittedDenied

@Kavain ile aynı sorunu sizden koymadığınız parolayı soruyorsanız ve anahtarınızı kullanıyorsanız , özel anahtarınıza , herkese açıkssh -i
olana

5

Ayrıntılarla ilgilenenler için - bunu yaparak genel anahtar dosyasının (yukarıda açıklandığı gibi oluşturulmuş) içinde ne olduğunu görebilirsiniz: -

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

veya özel anahtar dosyası için bu: -

openssl rsa -noout -text -in key.private

anahtarın gerçek bileşenlerini (modül, üsler, asallar, ...) konsolda metin olarak çıkarır.


2

Bir Amazon AWS .pemanahtar çiftini farklı bir bölgeye nasıl kopyalayacağınızı merak ediyorsanız aşağıdakileri yapın:

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

Sonra

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

2
Genel anahtar çıktısı openssl, AWS CLI anahtarı kabul etmeden önce kaldırmanız gereken PEM başlıklarına sıkıştırılmıştır.
JP

2

AWS'nin mevcut bir genel anahtarı içe aktarması için,

  1. Bunu yaparak .pem'den dışa aktar ... (linux üzerinde)

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

Bu, şuna benzer bir metin düzenleyicide açarsanız ...

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/8y3uYCQxSXZ58OYceG
A4uPdGHZXDYOQR11xcHTrH13jJEzdkYZG8irtyG+m3Jb6f9F8WkmTZxl+4YtkJdN
9WyrKhxq4Vbt42BthadX3Ty/pKkJ81Qn8KjxWoL+SMaCGFzRlfWsFju9Q5C7+aTj
eEKyFujH5bUTGX87nULRfg67tmtxBlT8WWWtFe2O/wedBTGGQxXMpwh4ObjLl3Qh
bfwxlBbh2N4471TyrErv04lbNecGaQqYxGrY8Ot3l2V2fXCzghAQg26Hc4dR2wyA
PPgWq78db+gU3QsePeo2Ki5sonkcyQQQlCkL35Asbv8khvk90gist4kijPnVBCuv
cwIDAQAB
-----END PUBLIC KEY-----
  1. Ancak AWS bu dosyayı KABUL ETMEYECEKTİR.

    Sen kapalı şerit zorunda -----BEGIN PUBLIC KEY-----ve -----END PUBLIC KEY-----dosyadan. Kaydedip içe aktarın ve AWS'de çalışmalıdır.


4
ve ssh-rsa AAAAB3NzaC1y....çalıştırmak için bu formatı dönüştürmeniz gerekirse :ssh-keygen -f PublicKey.pub -i -mPKCS8
Rafael Milewski
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.