Ec2 उदाहरण के लिए कुंजी जोड़ी बदलें


408

मैं AWS प्रबंधन कंसोल में अपने ec2 उदाहरण के लिए कुंजी जोड़ी कैसे बदलूं? मैं उदाहरण रोक सकता हूं, मैं नई कुंजी जोड़ी बना सकता हूं, लेकिन मुझे उदाहरण की कुंजी जोड़ी को संशोधित करने के लिए कोई लिंक दिखाई नहीं देता है।


1
मैंने इस वीडियो में बताए गए चरणों का पालन किया और इसने youtube.com/watch?v=OF2AOekW4IE
जोनाथन नोल्कोस बैरिकेंटोस

जवाबों:


491

यह उत्तर उस स्थिति में उपयोगी है जब आपके पास मौजूदा सर्वर तक एसएसएच पहुंच नहीं है (यानी आपने अपनी निजी कुंजी खो दी है)।

यदि आपके पास अभी भी SSH पहुंच है, तो कृपया नीचे दिए गए उत्तरों में से एक का उपयोग करें।

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

एरिक हैमंड के ब्लॉग पोस्ट के लिए यहां मैंने जो किया, वह धन्यवाद है:

  1. चल रहे EC2 उदाहरण को रोकें
  2. इसकी /dev/xvda1मात्रा को अलग करें (आइए इसे वॉल्यूम ए कहते हैं) - यहां देखें
  3. मेरी नई कुंजी जोड़ी का उपयोग करके नया t1.micro EC2 उदाहरण प्रारंभ करें। सुनिश्चित करें कि आप इसे एक ही सबनेट में बनाते हैं , अन्यथा आपको उदाहरण को समाप्त करना होगा और इसे फिर से बनाना होगा। - यहाँ देखें
  4. नए माइक्रो उदाहरण में वॉल्यूम A को संलग्न करें, /dev/xvdf(या /dev/sdf)
  5. SSH को नए माइक्रो इंस्टेंस और माउंट A के लिए वॉल्यूम /mnt/tmp

    $ सुडो माउंट / देव / xvdf1 / mnt / tmp

  6. को कॉपी ~/.ssh/authorized_keysकरें/mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. लॉग आउट
  8. माइक्रो उदाहरण समाप्त करें
  9. इससे वॉल्यूम A को अलग करें
  10. वॉल्यूम संलग्न करें मुख्य उदाहरण के रूप में वापस /dev/xvda
  11. मुख्य उदाहरण शुरू करें
  12. अपनी नई .pemफ़ाइल का उपयोग करके पहले की तरह लॉगिन करें

बस।


6
बस मेरे गधे को बचाया, तुम एक किंवदंती हो!
गैरी वेल्डिंग

8
mkdir /mnt/tmpऔर फिर mount /dev/xvdf /mnt/tmp# 5 के लिए चाल करना चाहिए। और चरण 13 को मत भूलना। शायद rm ~/.ssh/known_hostsआप उन बॉक्सों पर हैं जिनसे आप जुड़ रहे हैं।
ब्रैंडनस्क्रिप्ट

21
यह बहुत बदबूदार है ... सबसे पहले, नीचे एरिक हैमंड द्वारा जवाब देखें। दूसरा: पैट मैक द्वारा जवाब। वे वास्तव में एक ही काम करते हैं लेकिन प्रफुल्लित करने वाला काम करने में अपना समय बर्बाद करने के बिना 1h। पुनश्च। यह भी देखें stackoverflow.com/a/24143976/547223
kgadek

3
मैंने वास्तव में यहां विशिष्ट निर्देश लिखे हैं जो इस उत्तर पर बनाते हैं लेकिन अनिवार्य रूप से एक ही विचार है - gist.github.com/tamoyal/1b7ec4d3871b343d353d । जैसा कि @kgadek ने उल्लेख किया है, यह थोड़ा गंदा और समय लेने वाला है, लेकिन यह एक बढ़िया विकल्प है यदि आप उस सर्वर से बाहर निकले हैं जिस पर आप महत्वपूर्ण परिवर्तन करना चाहते हैं और यदि आप उस सर्वर की प्रतिलिपि नहीं बनाना चाहते हैं। प्रति घंटे 5-10 मिनट लगते हैं, घंटे नहीं।
टोनी

4
@Eric और @Pat द्वारा पोस्ट किए गए उत्तर उन लोगों के लिए समाधान हैं जो सिर्फ अपने उदाहरणों के लिए एक अलग कुंजी जोड़ी का उपयोग करना चाहते हैं। ये किसी ऐसे उपयोगकर्ता की मदद नहीं करते हैं, जो किसी भी तरह से महत्वपूर्ण जोड़ी फ़ाइल को पहले स्थान पर खो चुका है। वॉल्यूम को अलग किए बिना और इसे किसी अन्य उदाहरण में संलग्न करने के बिना आप उस वॉल्यूम पर नियंत्रण कैसे प्राप्त करेंगे? मूल .ssh/authorized_keysफ़ाइल को बदलने की अनुमति दें ।
संजीव

187

एक बार एक इंस्टेंस शुरू हो जाने के बाद, मेटा डेटा स्तर पर इंस्टेंस से जुड़ी कीपेयर को बदलने का कोई तरीका नहीं है, लेकिन आप इंस्टेंस से कनेक्ट करने के लिए आप किस ssh कुंजी का उपयोग कर सकते हैं।

अधिकांश एएमआई पर एक स्टार्टअप प्रक्रिया है जो सार्वजनिक ssh कुंजी डाउनलोड करती है और इसे .ssh / अधिकृत_की फ़ाइल में स्थापित करती है ताकि आप संबंधित निजी ssh कुंजी का उपयोग करके उस उपयोगकर्ता के रूप में ssh कर सकें।

यदि आप उदाहरण के लिए एक्सेस करने के लिए किस ssh कुंजी का उपयोग करना चाहते हैं, तो आप स्वयं ही अधिकृत_की फ़ाइल को उदाहरण पर संपादित करना चाहते हैं और अपनी नई ssh सार्वजनिक कुंजी में परिवर्तित कर सकते हैं।

अधिकृत_कील्स फ़ाइल .ssh उपनिर्देशिका के अंतर्गत है जिस उपयोगकर्ता के रूप में आप लॉग इन कर रहे हैं। आपके द्वारा चलाए जा रहे AMI के आधार पर, यह निम्नलिखित में से एक हो सकता है:

/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys

किसी अधिकृत_की फ़ाइल को संपादित करने के बाद, फ़ाइल को संपादित करने के लिए आप जिस सत्र का उपयोग कर रहे हैं, उसे डिस्कनेक्ट करने से पहले पुष्टि करने के लिए हमेशा एक अलग टर्मिनल का उपयोग करें। आप एक गलती नहीं करना चाहते हैं और अपने आप को पूरी तरह से उदाहरण से बाहर कर सकते हैं।

जब आप EC2 पर ssh कीपेयर के बारे में सोच रहे होते हैं, तो मैं आपको Amazon के लिए कीपर बनाने के बजाय EC2 में अपनी निजी ssh सार्वजनिक कुंजी अपलोड करने की सलाह देता हूं।

यहाँ एक लेख मैंने इस बारे में लिखा है:

अमेज़ॅन EC2 http://alestic.com/2010/10/ec2-ssh-keys पर व्यक्तिगत ssh कुंजी अपलोड करना

यह केवल आपके द्वारा चलाए जाने वाले नए उदाहरणों पर लागू होगा।


मैंने बेवकूफी से वह गलती की, मेरा मतलब है कि मैंने अधिकृत_की फ़ाइल को संपादित किया और लॉग आउट किया। अब, वापस ssh नहीं कर सकते हैं :( किसी भी जल्दी ठीक सुझाव?
anatifh

11
aatifh: यहाँ एक लेख है जो मैंने खुद को उस स्थिति से बाहर निकालने के लिए लिखा है: alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond

@EricHammond यह जगह से बाहर हो सकता है, लेकिन आप यह जान सकते हैं कि यह सब कैसे काम करता है ... मैंने आज एक EC2 उदाहरण स्थापित किया और .pemमेरे मैक पर निजी कुंजी फ़ाइल प्राप्त की , हालांकि ssh -i key.pemप्रमाणित नहीं करता है (अनुमति अस्वीकृत (publickey))। कुंजी जोड़ी नाम के तहत EC2 प्रबंधन कंसोल में यह कुछ भी नहीं सूचीबद्ध करता है। यह मेरे लिए चिंताजनक है। मैं इसे कैसे सेट कर सकता हूं? यह प्रबंधन कंसोल पर आधारित प्रतीत होता है कि मेरे द्वारा कॉन्फ़िगर किया गया कोई भी कुंजी उदाहरण के लिए असाइन नहीं किया गया है!
स्टीवन लू

1
@StevenLu: हाँ, टिप्पणी धागे नए प्रश्न पूछने के लिए गलत जगह है। Serverfault.com पर एक नया प्रश्न बनाने की कोशिश करें ( स्टैकओवरफ़्लो की तुलना में उस समस्या के लिए अधिक उपयुक्त)।
एरिक हैमंड

4
यहाँ अपनी कुंजी जोड़ने के लिए एक अच्छा सा एक लाइनर है। यह सिर्फ AWS के अलावा आपकी सामान्य पब कुंजी को जोड़ता है, इसलिए यदि यह काम नहीं करता है, तो आपने अपने आप को बंद नहीं किया होगा: stackoverflow.com/a/5654728/193494
केविन सी।

78

अपने AWS पेम को डाउनलोड करने के बाद इस कमांड को चलाएँ।

ssh-keygen -f YOURKEY.pem -y

फिर आउटपुट को डंप करें authorized_keys

या अपने AWS उदाहरण के लिए pem फ़ाइल की प्रतिलिपि बनाएँ और निम्नलिखित आदेशों पर अमल करें

chmod 600 YOURKEY.pem

और फिर

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys

14
यह तभी काम करता है जब आपके पास पहले से ही सिस्टम तक पहुंच हो, सही? (जैसे पुरानी .pem फ़ाइल नहीं खोई है)।
डैनियल

5
आप वर्तमान उपयोगकर्ता को जोड़ने के बजाय ओवरराइड करने के लिए> के बजाय> का उपयोग कर सकते हैं।
एड्रियन लोपेज

यह सही और सरल उत्तर है। पुनरारंभ करने की कोई आवश्यकता नहीं है, नए इंस्टेंसेस या माउंट ड्राइव बनाएं। बस .pem, कीजेन प्राप्त करें और इसे अधिकृत_होस्ट में जोड़ें।
स्पेंकी

मैंने यह ssh-keygen -f YourKEY.pem -y >> ~ / .ssh / अधिकृत_की किया है, लेकिन नई pubic कुंजी के साथ sitll मेरे ec2 तक नहीं पहुंच सकता है।
manukyanv07

मैंने इसे चलाया और मेरी स्थानीय कुंजी नहीं बदली।
लुइज़

50

AWS EC2 समर्थन से निर्देश:

  1. पेम लॉगिन बदलें
  2. अपने EC2 कंसोल पर जाएं
  3. NETWORK & SECURITY के तहत Key Pair पर क्लिक करके Create Key Pair पर क्लिक करें
  4. अपनी नई कुंजी जोड़ी को एक नाम दें, .pem फ़ाइल सहेजें। कुंजी जोड़ी का नाम आपके उदाहरण से कनेक्ट करने के लिए उपयोग किया जाएगा
  5. अपने उदाहरण के लिए SSH कनेक्शन बनाएं और इसे खुला रखें
  6. PuttyGen में, अपनी .pem फ़ाइल को लोड करने के लिए "लोड करें" पर क्लिक करें
  7. SSH-2 RSA रेडियो बटन को चेक करके रखें। "निजी कुंजी सहेजें" पर क्लिक करें आपको पॉप-अप विंडो चेतावनी मिलेगी, "हां" पर क्लिक करें
  8. सार्वजनिक कुंजी उत्पन्न करने के लिए "सार्वजनिक कुंजी सहेजें" पर क्लिक करें। यह सार्वजनिक कुंजी है जिसे हम आपके वर्तमान उदाहरण में कॉपी करने जा रहे हैं
  9. सार्वजनिक कुंजी को नए कुंजी जोड़े के नाम और एक्सटेंशन के साथ सहेजें
  10. नोटपैड में सार्वजनिक कुंजी सामग्री खोलें
  11. नीचे दी गई सामग्री की कॉपी करें "टिप्पणी:" आयातित-ओपनश-की "और" ---- END SSH2 सार्वजनिक कुंजी ----
    नोट से पहले - आपको सामग्री को एक पंक्ति के रूप में कॉपी करने की आवश्यकता है - सभी नई लाइनें हटाएं
  12. अपने कनेक्ट किए गए इंस्टेंस पर, टूल vi का उपयोग करके अपनी अधिकृत_की फ़ाइल खोलें। निम्न कमांड चलाएँ: vi .ssh / अधिकृत_कीज आपको फ़ाइल में मूल सार्वजनिक कुंजी भी देखनी चाहिए
  13. अपनी पहली सार्वजनिक कुंजी सामग्री के अंत में फ़ाइल पर अपना कर्सर ले जाएँ: सम्मिलित करने के लिए "i" टाइप करें
  14. नई पंक्ति पर, "ssh-rsa" टाइप करें और सार्वजनिक कुंजी, स्थान, और .pem फ़ाइल (.pem के बिना) नोट की सामग्री को पेस्ट करने से पहले एक स्थान जोड़ें - आपको एक पंक्ति मिलनी चाहिए। पिछली पंक्ति के समान प्रारूप
  15. Esc कुंजी दबाएं, और फिर टाइप करें: wq!

यह अद्यतन अधिकृत_की फ़ाइल को बचाएगा

अब अपने नए कुंजी पै का उपयोग करके अपने उदाहरण के लिए एक नया SSH सत्र खोलने का प्रयास करें

जब आपने पुष्टि कर ली है कि आप नई कुंजी जोड़ी का उपयोग करके SSH में सक्षम हैं, तो आप .ssh / अधिकृत_की और पुरानी कुंजी को हटा सकते हैं।

शैगी टिप्पणी का उत्तर:

यदि आप वॉल्यूम को अलग करने के लिए AWS कंसोल का उपयोग करने की तुलना में उदाहरण (जैसे कुंजी दूषित है) से कनेक्ट करने में असमर्थ हैं ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-digaching-volume.html ) और इसे कार्यशील उदाहरण के लिए फिर से सेट करें, वॉल्यूम पर कुंजी को बदलने और इसे पिछले उदाहरण पर वापस करने के लिए रीटच करें।


6
सबसे अच्छा उत्तर होना चाहिए

2
क्या होगा यदि पुरानी कुंजी दूषित हो गई है और आप पोटीन के माध्यम से इंस्टेंस से कनेक्ट करने में असमर्थ हैं क्योंकि आपके पास पुरानी ppk फाइल नहीं है ???
शागी

3
क्या होगा यदि आपके पास SSH का उपयोग नहीं है, इसलिए यह समस्या है।
Jayden Lawson

3
Jayden Lawson, अगर आपके पास इंटरनेट कनेक्शन नहीं है तो क्या होगा?
एलिया वीस

1
ऐसा हो सकता है कि कुंजी-जोड़ी अन्य व्यक्ति के साथ साझा की जाए और अब कुंजी-जोड़े को बदलने की आवश्यकता है ताकि व्यक्ति अब लॉग इन न कर सके, या इस तरह के कई अन्य कारण,
हरिकृष्ण

38

मैंने देखा कि जब इलास्टिक बीनस्टॉक द्वारा प्रबंधित किया जाता है, तो आप अपनी सक्रिय EC2 कुंजी जोड़ी को बदल सकते हैं। इलास्टिक बीनस्टॉक> कॉन्फ़िगरेशन> सुरक्षा के तहत, EC2 कुंजी जोड़ी ड्रॉप-डाउन से नई कुंजी चुनें । यदि आपको यकीन है तो आपको यह संदेश दिखाई देगा:

EC2KeyName: EC2KeyName सेटिंग्स को बदलने का विकल्प तुरंत प्रभावी नहीं होगा। आपके मौजूदा EC2 उदाहरणों में से प्रत्येक को बदल दिया जाएगा और आपकी नई सेटिंग्स तब प्रभावी होंगी।

ऐसा होने पर मेरा उदाहरण पहले ही समाप्त कर दिया गया था। यह तब शुरू हुआ, समाप्त हुआ, और फिर से शुरू हुआ। स्पष्ट रूप से "प्रतिस्थापित" का अर्थ है एक नया उदाहरण समाप्त करना और बनाना। यदि आपने अपने बूट वॉल्यूम को संशोधित किया है, तो पहले एक एएमआई बनाएं, फिर उस एएमआई को उसी एलास्टिक बीनस्टॉक> कॉन्फ़िगरेशन> इंस्टेंस फॉर्म में कस्टम एएमआई आईडी के रूप में निर्दिष्ट करें । यह EC2 उदाहरणों को बदलने के बारे में भी चेतावनी देता है।

अपनी EC2 कुंजी जोड़ी और कस्टम AMI ID को संशोधित करने के बाद, और दोनों के बारे में चेतावनी देखने के बाद, जारी रखने के लिए सहेजें पर क्लिक करें

याद रखें कि जब उदाहरण को फिर से बनाया जाता है तो IP पता बदल जाता है, इसलिए आपको SSH के माध्यम से कनेक्ट करते समय EC2 कंसोल से उपयोग करने के लिए एक नया IP पता प्राप्त करना होगा।


1
यह अब विन्यास के 'सुरक्षा' अनुभाग के अंतर्गत है।
बजे विल डेमिनेन

धन्यवाद @WillDemaine। वर्तमान में AWS का उपयोग नहीं कर रहा हूँ, इसलिए मैं इसके लिए आपका शब्द लेता हूँ और संपादन को मंजूरी देता हूँ!
मार्क बेरी

31

मैं इस दृष्टिकोण से गुज़रा, और कुछ समय बाद, यह काम करने में सक्षम हो गया। वास्तविक आदेशों की कमी ने इसे कठिन बना दिया, लेकिन मैंने इसे समझ लिया। कैसे - बहुत आसान दृष्टिकोण पाया गया और कुछ ही समय बाद परीक्षण किया गया:

  1. अपने उदाहरण को एएमआई के रूप में सहेजें (रिबूट या नहीं, मैं रिबूट का सुझाव देता हूं)। यह केवल तभी काम करेगा जब ईबीएस समर्थित हो।
  2. फिर, बस इस AMI से एक उदाहरण शुरू करें और अपनी नई Keyfile असाइन करें।
  3. अपने नए उदाहरण के लिए अपने लोचदार आईपी (यदि लागू हो) पर जाएं, और आप कर रहे हैं।

गलती से ~ /
.ssh

मैंने ऐसा ही किया और यह काम कर गया, अब मैं नए पीएम के साथ लॉगिन कर सकता हूं। लेकिन मैं अभी भी पुराने पेम के साथ लॉगिन कर सकता हूं। तो अब 2 pems मान्य हैं।
विटाली

FYI करें यह एक आसान आसान GUI विधि है जो एक नई EC2 को अलग-अलग कुंजी के साथ कताई करने में व्यस्त है लेकिन @vitaly के रूप में आपको पुरानी pem कुंजी भी मान्य है, /home/ec2-user/.ssh.authorized_keys पर जाने और निकालने की आवश्यकता है फ़ाइल से पुरानी पीएम कुंजी। त्वरित पेम कुंजी परिवर्तन विधि के लिए धन्यवाद अच्छा और आसान है जब कोई समय नहीं मिला।
ब्लू टावर्स

यह मेरे लिए काम नहीं किया। AWS यह कहती रही कि पासवर्ड एक अन्य संदेश के साथ अनुपलब्ध था, जिसमें उल्लेख किया गया था कि यदि एएमआई से उदाहरण बनाया गया है तो यह मूल छवि की साख का उपयोग करता है।
ब्रैडी

15

यदि नीचे दिए गए चरणों का पालन किया जाता है तो इससे बहुत समय की बचत होगी और रनिंग इंस्टेंस को रोकने की कोई आवश्यकता नहीं होगी।

  1. नए कुंजी युग्म का उपयोग करके नए t1.micro EC2 उदाहरण को प्रारंभ करें। सुनिश्चित करें कि आप इसे एक ही सबनेट में बनाते हैं , अन्यथा आपको उदाहरण को समाप्त करना होगा और इसे फिर से बनाना होगा।
  2. नए माइक्रो इंस्टेंस और अपने कंप्यूटर पर कहीं न कहीं ~ / .shsh / अधिकृत_की सामग्री की प्रतिलिपि बनाएँ ।
  3. पुरानी ssh कुंजी के साथ मुख्य उदाहरण में लॉगिन करें ।
  4. फ़ाइल सामग्री को बिंदु 2 से ~ / .ssh / अधिकृत_की तक कॉपी और बदलें
  5. अब आप केवल नई कुंजी के साथ फिर से लॉगिन कर सकते हैं। पुरानी कुंजी अब काम नहीं करेगी।

बस इतना ही। आनंद लें :)


14

मेरा मानना ​​है कि सबसे सरल aproach है:

  1. मौजूदा उदाहरण की एएमआई छवि बनाएं।
  2. नई कुंजी जोड़ी के साथ AMI छवि (चरण 1 द्वारा क्रिएट) का उपयोग करके नए EC2 उदाहरण लॉन्च करें।
  3. नई कुंजी के साथ नए EC2 उदाहरण में लॉगिन करें।

@ ब्रैडी, क्या काम नहीं करता है? एक स्नैपशॉट बना रहा है? लॉन्चिंग उदाहरण? लॉग इन करें?
सेर्गेई

4
मुझे यकीन नहीं है कि यह परिवर्तन हाल ही में एक है या नहीं, लेकिन जब आप एक उदाहरण से एक एएमआई बनाते हैं जो पहले से ही एक कुंजी सौंपा गया है, तो आपको उस एएमआई को कॉपी किए गए एएमआई छवि में प्रवेश करने के लिए उपलब्ध होने की आवश्यकता है, भले ही वह हो या नहीं। आप निर्माण के दौरान एक अलग कुंजी जोड़ी देते हैं।
ब्रैडी

यह कोई समाधान नहीं है, क्योंकि @ ब्रैडी का उल्लेख है कि यह काम नहीं करता है।
ग्रेग सैन्सोम

8

यदि आप ElasticBeanstalk प्लेटफॉर्म का उपयोग कर रहे हैं, तो आप जा कर कुंजियाँ बदल सकते हैं:

  • लोचदार बीनस्टॉक पैनल
  • विन्यास
  • उदाहरण (कोग टॉप-राइट)
  • EC2 प्रमुख जोड़ी

यह वर्तमान उदाहरण को समाप्त करेगा और चुने हुए कुंजी / सेटिंग्स के साथ नया बनाता है।


2
यह यहाँ सबसे सरल उत्तर है, बशर्ते आप ElasticBeanstalk पर हों।
युवल कर्म

2
चेतावनी! यह एक खतरनाक उपाय है। AWS उस उदाहरण से जुड़ी (यानी वर्चुअल HDD) स्टोरेज को भी रीसेट कर देगा (!!)। तो, आपको स्टोरेज को अलग करना होगा, और, एक नया इंस्टेंस बढ़ाने के बाद, नए इंस्टेंस के साथ आए नए के बजाय इसे फिर से रीटच करें। बेशक, यह सबसे अच्छा होगा यह एक एन्क्रिप्टेड वॉल्यूम नहीं है (और आपने इसकी कुंजी नहीं खोई है ..)
जेएमसी

7

इस प्रश्न में दो परिदृश्य पूछे गए हैं: -

1) आपके पास .pem फ़ाइल तक पहुंच नहीं है, इसलिए आप एक नया बनाना चाहते हैं।

2) आपके पास है। आपके साथ pem फ़ाइल एक्सेस है लेकिन आप बस कुछ भेद्यता या सुरक्षा उद्देश्यों के लिए एक नई। pem फ़ाइल को बदलना या बनाना चाहते हैं

इसलिए यदि आपने अपनी चाबियाँ खो दी हैं तो आप स्क्रॉल कर सकते हैं और अन्य उत्तर देख सकते हैं । लेकिन अगर आप बस अपने .pem फ़ाइल को सुरक्षा उद्देश्यों के लिए बदलते हैं तो चरणों का पालन करें: -

1) AWS कंसोल लॉगिन पर जाएं और वहां पर की-पेयर सेक्शन से एक नई। Pem फाइल बनाएं। यह स्वचालित रूप से आपके पीसी में .pem फ़ाइल डाउनलोड करेगा

2) यदि आप Linux / ubuntu का उपयोग कर रहे हैं, तो ४०० से नीचे की अनुमति को बदल दें

chmod 400 yournewfile.pem

3) अपने स्थानीय मशीन में नए डाउनलोड किए गए फ़ाइल का RSA उत्पन्न करें

ssh-keygen -f yournewfile.pem -y

4) RSA कोड को यहां से कॉपी करें

5) अब पिछले। Pem फ़ाइल के माध्यम से अपने उदाहरण के लिए SSH

ssh -i oldpemfileName.pem username@ipaddress

sudo vim  ~/.ssh/authorized_keys

6) एक-दो लाइनें स्पेस दें और यहां नई फाइल के कॉपी किए हुए RSA को पेस्ट करें और फिर फाइल को सेव करें

7) अब आपकी नई। Pem फाइल रनिंग इंस्टेंस से जुड़ी हुई है

8) यदि आप पिछली .pem फ़ाइल एक्सेस को अक्षम करना चाहते हैं तो बस संपादित करें

sudo vim ~/.ssh/authorized_keys

फ़ाइल और पिछले RSA को यहां से हटाएं या बदलें।

नोट: - ध्यान से हटाएं ताकि नव निर्मित RSA परिवर्तित न हो।

इस तरह, आप अपने चल रहे इंस्टेंस के साथ नई। Pem फ़ाइल को बदल / कनेक्ट कर सकते हैं।

आप सुरक्षा उद्देश्यों के कारण पहले से उत्पन्न। Pem फ़ाइल तक पहुँच रद्द कर सकते हैं।

आशा है कि यह मदद करेगा!


2
मैं इस समाधान को पसंद करता हूं क्योंकि मुझे जमे हुए एएमआई छवि के साथ नए उदाहरण बनाने की आवश्यकता नहीं है। लेकिन क्या यह विधि EC2 डैशबोर्ड में EC2 उदाहरण के संबद्ध की -ेयर को बदलने में सक्षम है? @ परवीन यादव
आदी

6

सबसे सरल समाधान सामग्री की प्रतिलिपि बनाना है

~/.ssh/id_rsa.pub

आपके AWS उदाहरण के अधिकृत_कीप में

~/.ssh/authorized_keys

यह आपको ssh कमांड के लिए pem फ़ाइल निर्दिष्ट किए बिना EC2 उदाहरण में ssh करने की अनुमति देगा। एक बार जब आप इसे कनेक्ट करने का परीक्षण कर लेते हैं, तो आप अन्य सभी कुंजियों को हटा सकते हैं।

यदि आपको इसे किसी और के साथ साझा करने के लिए एक नई कुंजी बनाने की आवश्यकता है, तो आप ऐसा कर सकते हैं:

ssh-keygen -t rsa

जो निजी key.pem फ़ाइल बनाएगा, और आप इसके साथ सार्वजनिक कुंजी प्राप्त कर सकते हैं:

ssh-keygen -f private_key.pem -y > public_key.pub

जिस किसी के पास भी प्राइवेट_की.पीएम है वह इससे जुड़ सकेगा

ssh user@host.com -i private_key.pem

4
~/.ssh/authorized_keysजब मैं SSH aws उदाहरण भी नहीं दे सकता तो मैं कैसे पहुँच सकता हूँ ?
प्रयागपाद

3
मेरा मानना ​​है कि आपकी अंतिम पंक्ति गलत है, आप तभी कनेक्ट कर पाएंगे जब आपके पास निजी कुंजी होगी .. ssh -i private_key.pem user@host.com। यदि आप चाहते हैं कि कोई व्यक्ति आपको उनके उदाहरण तक पहुंच प्रदान करे, तो आप अपनी सार्वजनिक कुंजी उनके साथ सुरक्षित रूप से साझा कर सकते हैं और वे इसे आपके
अधिकृत_के साथ जोड़कर आपको

5

आपको रूट डिवाइस को घुमाने और SSH सार्वजनिक कुंजी को बदलने की आवश्यकता नहीं है authorized_keys। इसके लिए आप किसी भी उदाहरण के लिए ssh कुंजियों को जोड़ने के लिए userdata का उपयोग कर सकते हैं। उसके लिए पहले आपको AWS कंसोल का उपयोग करके या ssh-keygen के माध्यम से एक नया KeyPair बनाने की आवश्यकता है।

ssh-keygen -f YOURKEY.pem -y

यह आपके नए SSH KeyPair के लिए सार्वजनिक कुंजी उत्पन्न करेगा, इस सार्वजनिक कुंजी की प्रतिलिपि बनाएँ और इसे नीचे स्क्रिप्ट में उपयोग करें।

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//

पुनरारंभ करने के बाद मशीन में निर्दिष्ट SSH publch कुंजी होगी। पहले पुनरारंभ के बाद उपयोगकर्ताडेटा निकालें। स्टार्टअप पर उपयोगकर्ताडेट के बारे में और पढ़ें ।


4
  • PuTTY कुंजी जेनरेटर का उपयोग करके नई कुंजी बनाएं
  • उदाहरण रोकें
  • सर्वर की सार्वजनिक कुंजी को पुश करने के लिए उपयोगकर्ता डेटा सेट करें
  • प्रारंभ उदाहरण

चेतावनी: उपयोगकर्ता डेटा को फिर से साफ़ करना न भूलें। अन्यथा यह कुंजी हर इंस्टेंस स्टार्ट पर धकेल दी जाएगी। चरण-दर-चरण निर्देश

#cloud-config
bootcmd:
 - echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys

यहां छवि विवरण दर्ज करें


1
यह आधिकारिक AWS तरीका है toi do, so @ सहारा। aws.amazon.com/premiumsupport/knowledge-center/…
Bevan

3

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

  1. पुरानी मशीन से अपनी पुरानी। Pem फ़ाइल का उपयोग करके ec2 उदाहरण में लॉग इन करें। ओपन ~ / .श / अधिकृत_की

आपको उस फाइल में आपकी पुरानी चाबियां दिखाई देंगी।

  1. ssh-keygen -f your_PEM_FILE.pem -y यह एक कुंजी उत्पन्न करेगा। चरण # 1 में खोले गए कुंजी को ~ / .sh / अधिकृत_कीज में जोड़ें। पुरानी कुंजी को हटाने की आवश्यकता नहीं है।

  2. AWS कंसोल से, एक नई कुंजी जोड़ी बनाएं। इसे अपनी नई मशीन में स्टोर करें। पुरानी pem फ़ाइल में इसका नाम बदलें - कारण पुरानी pem फ़ाइल अभी भी AWS में ec2 उदाहरण से जुड़ी है।

सब कुछ कर दिया।

मैं अपनी नई क्लाइंट मशीन से AWS ec2 में लॉग इन करने में सक्षम हूं।


3

आपके पास अपने EC2 उदाहरण की कुंजी को बदलने के लिए कई विकल्प हैं।

  1. आप .ssh / अधिकृत_की फ़ाइल में मैन्युअल रूप से कुंजी को बदल सकते हैं। हालाँकि इसके लिए आपको वास्तव में उदाहरण या वॉल्यूम तक पहुंच की आवश्यकता होती है यदि यह अनएन्क्रिप्टेड है।
  2. आप एडब्ल्यूएस सिस्टम मैनेजर का उपयोग कर सकते हैं। इसके लिए एक एजेंट स्थापित करना होगा।

चूंकि पहला विकल्प उत्तर में या आपकी पसंद के खोज इंजन पर आसानी से मिल सकता है, इसलिए मैं सिस्टम मैनेजर पर ध्यान केंद्रित करना चाहता हूं।

  1. सेवा खोलें Systems Manager
  2. Automationबाईं ओर क्लिक करें ।
  3. पर क्लिक करें Execute Automation
  4. चुनें AWSSupport-TroubleshootSSH(आमतौर पर यह अंतिम पृष्ठ पर है)

आप आधिकारिक AWS प्रलेखन पर अधिक जानकारी पा सकते हैं


1

Yegor256 के जवाब ने मेरे लिए काम किया, लेकिन मुझे लगा कि मैं सिर्फ कुछ टिप्पणियों को जोड़ने में मदद करूंगा, जो बढ़ते ड्राइव (मेरे जैसे!) पर इतने अच्छे नहीं हैं।

अमेज़ॅन आपको एक विकल्प देता है कि आप इसे संलग्न करते समय वॉल्यूम को क्या नाम देना चाहते हैं। आपने / dev / sda - / dev / sdp से सीमा में एक नाम का उपयोग किया है। उबंटू के नए संस्करण तब नाम बदल देंगे, जो आपने वहाँ रखे हैं / देव / xvd (x) या उस प्रभाव के लिए कुछ।

तो मेरे लिए, मैंने AWS में माउंट नाम के रूप में / dev / sdp को चुना, फिर मैंने सर्वर में लॉग इन किया, और पता चला कि उबंटू ने मेरा वॉल्यूम / देव / xvdp1 में बदल दिया था)। मुझे तब ड्राइव को माउंट करना था - मेरे लिए मुझे इसे इस तरह करना था:

mount -t ext4 xvdp1 /mnt/tmp

उन सभी हुप्स के माध्यम से कूदने के बाद मैं अपनी फ़ाइलों को / mnt / tmp पर एक्सेस कर सकता था


एक टिप्पणी के रूप में यह एक टिप्पणी के रूप में जोड़ा जाना चाहिए, एक जवाब नहीं।
JDL

0

यह तभी काम करेगा जब आपके पास उस कुंजी तक पहुंच होगी जिसे आप कुंजी को बदलना / जोड़ना चाहते हैं। आप एक नई कुंजी जोड़ी बना सकते हैं। या यदि आपके पास पहले से ही कुंजी जोड़ी है, तो आप अपने उदाहरण पर अधिकृत_की फ़ाइल में नई जोड़ी की सार्वजनिक कुंजी पेस्ट कर सकते हैं।

vim। ssh / अधिकृत_की

अब आप उस जोड़ी के लिए निजी कुंजी का उपयोग कर सकते हैं और लॉग इन कर सकते हैं।

उम्मीद है की यह मदद करेगा।


0

मेरा मुद्दा था, मैंने IPजनता के बजाय कोशिश की DNS। तब मैंने public DNSइसके साथ प्रयास किया और इसका समाधान किया


0

यदि आप VM में लॉगिन नहीं कर पा रहे हैं और अपनी ssh कुंजी को हटा दिया है और आप नीचे दिए चरणों का उपयोग करके अपने ec2 की कुंजी जोड़ी को भी बदल सकते हैं। चरण 1 पर जाएं) अपने ec2 उदाहरण को रोकें। 2) VM और स्टोरेज का स्नैपशॉट लें। 3) अपने स्नैपशॉट का चयन करते समय एक नया वीएम बनाएं और अपने स्नैपशॉट से वीएम बनाएं। 4) जबकि वीएम का निर्माण आपके कीपर को डाउनलोड करता है। 5) एक बार अपने वीएम यूपी के साथ आप एक नई कुंजी जोड़ी के साथ ssh कर सकते हैं और आपका डेटा भी वापस आ जाएगा।


0

आप क्या कर सकते है...

  1. एक नई इंस्टेंस प्रोफ़ाइल / भूमिका बनाएँ जिसमें AmazonEC2RoleForSSM नीति संलग्न हो।

  2. इस इंस्टेंस प्रोफाइल को उदाहरण में संलग्न करें।

  3. उदाहरण के लिए लॉगिन करने के लिए SSM सत्र प्रबंधक का उपयोग करें।
  4. कुंजी जोड़ी बनाने के लिए अपने स्थानीय मशीन पर कीजन का उपयोग करें।
  5. उदाहरण के लिए उस कुंजी का सार्वजनिक भाग अपने SSM सत्र का उपयोग करके पुश करें।
  6. फायदा।

0

टिप्स के लिए शुक्रिया दोस्तों। जब मैं प्रमुख जोड़े को आराम करने की आवश्यकता होगी तो निश्चित रूप से उन्हें ध्यान में रखूंगा। हालांकि, दक्षता और आलस्य के हित में मैं कुछ और लेकर आया हूं:

  1. अपनी नई कुंजी जोड़ी बनाएं और क्रेडेंशियल्स डाउनलोड करें
  2. अपना उदाहरण राइट-क्लिक करें> एएमआई बनाएं एक बार जब यह पूरा हो जाए
  3. अपने उदाहरण को समाप्त करें (या इसे तब तक रोकें जब तक आप सुनिश्चित न हों कि आप अपने नए चमकदार एएमआई से एक और बना सकते हैं)
  4. आपके द्वारा अभी बनाए गए AMI से एक नया EC2 उदाहरण शुरू करें और ऊपर चरण (1) में बनाई गई अपनी नई कुंजी जोड़ी को निर्दिष्ट करें।

आशा है कि यह आपके काम आ सकता है और आपको कुछ समय बचा सकता है और साथ ही इस तरह के सामान से मिलने वाले सफेद बालों की मात्रा को कम करेगा :)

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