Ssh कुंजी जोड़ी से .pem फ़ाइल कैसे प्राप्त करें?


33

मैंने ssh-keygen का उपयोग करके एक प्रमुख जोड़ी बनाई और दो क्लैसिक id_rsa और id_rsa.pub प्राप्त करें।

मैंने अपने AWS EC2 खाते में सार्वजनिक कुंजी आयात की।

अब मैंने एक विंडो इंस्टेंस बनाया और उस इंस्टेंस पासवर्ड को डिक्रिप्ट करने के लिए, AWS कंसोल मुझसे एक .pem फाइल के लिए पूछ रहा है। मैं अपनी दो id_rsa और id_rsa.pub फ़ाइलों से उस .pem फ़ाइल को कैसे प्राप्त कर सकता हूँ?


2
निजी कुंजी पहले से ही पीईएम प्रारूप में है और इसका उपयोग किया जा सकता है।
माइकल हैम्पटन

@Michael Hampton, यह ssh-keygen के संस्करण और कुंजी युग्म उत्पन्न करने के लिए उपयोग किए जाने वाले कमांड पर निर्भर करेगा। कुछ संस्करण PEM के बजाय डिफ़ॉल्ट रूप से RFC4716 का उपयोग करते हैं।
ऑस्ट्रेलियाई जूल

जवाबों:


44

के अनुसार इस , इस आदेश का इस्तेमाल किया जा सकता:

ssh-keygen -f id_rsa -e -m pem

यह आपकी सार्वजनिक कुंजी को एक ओपनएसएसएल संगत प्रारूप में बदल देगा। आपकी निजी कुंजी पहले से ही पीईएम प्रारूप में है और इसका उपयोग किया जा सकता है (जैसा कि माइकल हैम्पटन ने कहा है)।

यदि पीईएस प्रारूप में AWS (X.509) प्रमाणपत्र नहीं मांगता है, तो दोहरी जांच करें , जो आपके SSH कुंजी की तुलना में एक अलग बात होगी।


लेकिन उन्हें सार्वजनिक कुंजी की आवश्यकता नहीं है? उन्हें AWS कंसोल से अपना पासवर्ड डिक्रिप्ट करने के लिए निजी कुंजी की आवश्यकता है
माइकल बेली

मुझे पता नहीं है कि ओपी को इसके लिए क्या चाहिए।
फुइरो

निश्चित नहीं है कि आप AWS से कितने परिचित हैं, लेकिन जब आप एक विंडो इंस्टेंस (मूल रूप से सर्वर) को स्पिन करते हैं, तो AWS आपसे पासवर्ड रखता है जब तक आप उन्हें अपनी निजी कुंजी नहीं देते। फिर वे आपको सर्वर पासवर्ड देते हैं। इस तरह AWS पर विंडोज और लिनक्स सर्वर, दोनों निजी कुंजी पर निर्भर करते हैं।
माइकल बेली

1
यह OS X (ssh -v ==> OpenSSH_6.2p2) पर काम नहीं करता है
संजोएं

3
प्रलेखन के विपरीत, यह PEM प्रारूप में PUBLIC कुंजी का उत्पादन करेगा, निजी नहीं। वर्तमान में ssh-keygen निजी कुंजियों को परिवर्तित करने का समर्थन नहीं करता है।
मुर्गेवई

21

ssh-keygen.Pem प्रारूप में कुंजी को निर्यात करने के लिए उपयोग करना मेरे लिए काम करता है।

ssh-keygen -f id_rsa.pub -m 'PEM' -e > id_rsa.pem

फिर बस .pemकुंजी को आवश्यकतानुसार कॉपी करें ।

सन्दर्भ के लिए:

  • -f id_rsa.pubभाग इनपुट फ़ाइल से पढ़ने के लिए इंगित करता है
  • -m 'PEM एक पीईएम फ़िलाटाइप इंगित करता है
  • -eविकल्प का संकेत है कि उत्पादन निर्यात किया जाएगा

5

id_rsa वह फ़ाइल है जिसका उपयोग आपको Windows EC2 इंस्टेंस पासवर्ड को डिक्रिप्ट करने के लिए करना है, लेकिन यह सुनिश्चित कर लें कि जिस फाइल को आप कॉपी पेस्ट करते हैं वह वाक्यांश संरक्षित नहीं है।

मैंने समस्या का हल अस्थायी रूप से असुरक्षित id_rsaफ़ाइल के साथ प्राप्त किया जैसे:

$ openssl rsa -in ~/.ssh/id_rsa -out tmp_file.pem

2

प्रारंभ में, उपयोग करते समय ssh-keygen, मैं एक सार्वजनिक कुंजी उत्पन्न कर सकता था जो AWS EC2 के साथ संगत थी, लेकिन निजी कुंजी बनाने के साथ समस्याएँ थीं जो संगत थीं। निम्न सार्वजनिक और निजी कुंजी जोड़े बनाता है जो AWS EC2 के साथ संगत हैं।

ssh-keygen -P "" -t rsa -b 4096 -m pem -f my-key-pair

यहां प्रत्येक पैरामीटर के बारे में जानकारी दी गई है:

  • - 8. पासफ़्रेज़ के लिए है। जानबूझकर खाली करना।
  • -t: बनाने के लिए कुंजी का प्रकार निर्दिष्ट करता है। AWS EC2 कुंजी जोड़ी को RSA की आवश्यकता होती है। यह मेरा अनुभव है कि यह सार्वजनिक कुंजी से संबंधित है जो बनाई गई है।
  • -b: कुंजी में बिट्स की संख्या निर्दिष्ट करता है। समर्थित लंबाई 1024, 2048 और 4096 हैं। यदि आप EC2 इंस्टेंस कनेक्ट एपीआई का उपयोग करते समय SSH का उपयोग करते हैं, तो समर्थित लंबाई 2048 और 4096 हैं।
  • -m: मुख्य पीढ़ी के लिए एक मुख्य प्रारूप निर्दिष्ट करता है। एक समर्थित निजी कुंजी प्रकार बनाते समय "पीईएम" का प्रारूप सेट करने से विरासत पीईएम निजी कुंजी प्रारूप में कुंजी जमा हो जाएगी। AWS EC2 कुंजी जोड़ी को विरासत प्रारूप की आवश्यकता है
  • -f: कुंजी फ़ाइल का आउटपुट फ़ाइल नाम निर्दिष्ट करता है

संसाधन:

Ssh-keygen के बारे में अधिक जानकारी के लिए, देखें:  https://man.openbsd.org/ssh-keygen.1

AWS - EC2 मुख्य जोड़े -  https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html


माइक ने 'बी' विकल्प के लिए प्रलेखन को शामिल नहीं करने के लिए चुना है। शायद कुछ के लिए स्पष्ट है, इसका मतलब है "4096-बिट एन्क्रिप्शन कृपया"। जैसा कि लिंक किए गए AWS डॉक में कहा गया है, "समर्थित लंबाई 1024, 2048 और 4096 है। यदि आप EC2 इंस्टेंस कनेक्ट एपीआई का उपयोग करते समय SSH का उपयोग करते हैं, तो समर्थित लंबाई 2048 और 4096 है।"
nclark

@nclard, मुझे यकीन नहीं है कि मैंने उस आउट-बी पैरामीटर को क्यों छोड़ा। बस जोड़ दिया।
माइक बार्लो - बारदेव

0

जब आप EC2 उदाहरण लॉन्च करते हैं, तो आप इसे एक महत्वपूर्ण जोड़ी (या कोई नहीं) पर असाइन करते हैं। इसे बाद में नहीं बदला जा सकता है।

उस कुंजी जोड़ी से केवल .pem फ़ाइल का उपयोग करने से आप Windows पासवर्ड को डिक्रिप्ट कर पाएंगे।

.Pem फ़ाइल तब डाउनलोड की गई होगी जब कुंजी जोड़ी बनाई गई थी। आप इसे फिर से प्राप्त नहीं कर सकते। यदि आप इसे खो चुके हैं, तो आप भाग्य से बाहर हैं।

आप एक .pem फ़ाइल का उपयोग नहीं कर सकते हैं जो आपने स्वयं उत्पन्न की थी जब तक कि आपने उस कुंजी को AWS में आयात नहीं किया था, उदाहरण के लिए लॉन्च होने से पहले और उसे उदाहरण के लिए असाइन किया गया था।

सीधे शब्दों में कहें, यदि आपके पास मूल .pem फ़ाइल नहीं है, तो आपको पासवर्ड नहीं मिल सकता है।

संपादित करें: प्रश्न को फिर से पढ़ने के बाद, मुझे एहसास हुआ कि ओपी ने अपनी कुंजी को एडब्ल्यूएस में आयात किया था।

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