OpenSSL का उपयोग करके सार्वजनिक कुंजी कैसे निकालें?


120

निम्न आदेश एक फ़ाइल बनाता है जिसमें सार्वजनिक और निजी कुंजी दोनों शामिल हैं:

openssl genrsa -des3 -out privkey.pem 2048

स्रोत: यहाँ

ओपनएसएसएल के साथ, निजी कुंजी में सार्वजनिक कुंजी जानकारी भी होती है, इसलिए एक सार्वजनिक कुंजी को अलग से उत्पन्न करने की आवश्यकता नहीं होती है

हम प्राइवेटकी.पीएम फ़ाइल से सार्वजनिक कुंजी कैसे निकाल सकते हैं?

धन्यवाद।


यह ऑनलाइन टूल शांत है 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.pubकिसी फ़ाइल पर रीडायरेक्ट करने के बजाय।
जुआन एंटोनियो

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

कंसोल पर पाठ के रूप में आउटपुट जो कुंजी के वास्तविक घटकों (मापांक, घातांक, primes, ...)


2

यदि आप देख रहे हैं कि कैसे .pemएक अलग क्षेत्र में अमेज़ॅन AWS keypair कॉपी करने के लिए निम्न कार्य करें:

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
सार्वजनिक कुंजी आउटपुट opensslPEM हेडर में सैंडविच किया जाता है, जिसे आपको AWS CLI द्वारा स्वीकार करने से पहले हटाना होगा।
जेपी

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
राफेल मिल्स्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.