पेम फ़ाइल खो जाने पर लिनक्स अमेज़ॅन EC2 इंस्टेंस तक पहुँच प्राप्त करने के लिए चरण-दर-चरण निर्देश

यदि AWS में लिनक्स उदाहरण के निर्माण के दौरान, SSH के माध्यम से इसे एक्सेस करने के लिए एक कुंजी जोड़ी (KeyPair) नहीं बनाई गई थी या वे खो गए हैं, तो मशीन तक पहुंच प्राप्त करने के लिए कई ऑपरेशन किए जाने चाहिए। आप AWS कंसोल के माध्यम से पहले से चल रहे इंस्टेंस में कुंजियाँ नहीं जोड़ सकते। ऐसे तीन तरीके हैं जिनसे हम एक उदाहरण के लिए एसएसएच पहुंच को बहाल कर सकते हैं।

सबसे आसान तरीका क्लाउड- इनिट तंत्र का उपयोग करके कुंजी को कॉन्फ़िगर करना है ( युसमैन से संकेत के लिए धन्यवाद)। लेकिन यह काम नहीं करता है यदि /home निर्देशिका के अधिकार क्षतिग्रस्त हैं या वितरण क्लाउड-इनिट निर्देशों का समर्थन नहीं करता है।

दूसरा तरीका एक मौजूदा उदाहरण से एक छवि (अमेज़ॅन मशीन छवि) बनाना है और फिर इसके आधार पर एक नया उदाहरण लॉन्च करना है, लेकिन एक कुंजी के साथ। इस प्रकार, मौजूदा मशीन वास्तव में केवल इस अंतर के साथ क्लोन की जाएगी कि अंतिम चरण में नई कुंजी बनाना संभव है। एक छवि बनाने से बड़े डिस्क के साथ एक उदाहरण के लिए एक लंबा समय लग सकता है, और आपको इस मशीन नए सिरे से बंधे सभी सेवाओं को कॉन्फ़िगर करना होगा। इसलिए, ज्यादातर मामलों में यह विधि अधिक समय लेगी।

अमेज़ॅन के आधिकारिक डॉक्स एक और तरीका बताते हैं। यह आपको एक्सेस को पुनर्स्थापित करने और पुन: कॉन्फ़िगर करने की सेवाओं की लागत को कम करने की अनुमति देता है (दूसरी विधि की तुलना में), जो एक ऐसे उदाहरण से जुड़ा हुआ है जिसमें पहुंच खो जाती है। लेख इसका एक चरणबद्ध विवरण देता है।

चेतावनी! यह विधि केवल इंस्टेंस के लिए काम करती है जो रूट डिवाइस के रूप में ब्लॉक स्टोरेज (Amazon Elastic Block Store) का उपयोग करती है, और स्थानीय इंस्टेंस स्टोरेज (Amazon EC2 Instance Store) के लिए काम नहीं करती है।

यह पता लगाने के लिए कि आप किस प्रकार के रूट डिवाइस का उपयोग कर रहे हैं, अमेज़ॅन ईसी 2 कंसोल खोलें, इंस्टेंस पर जाएं , एक उदाहरण का चयन करें और विस्तृत जानकारी के साथ पैनल में रूट डिवाइस प्रकार पैरामीटर के मूल्य की जांच करें।

इंस्टेंस रूट डिवाइस प्रकार

यदि आपकी मशीन में ईबीएस है , तो यह विधि आपके लिए उपयुक्त है।

चरण 1. तैयारी


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

  • इंस्टेंस आईडी
  • एएमआई आईडी
  • ईबीएस आईडी
  • रूट डिवाइस
  • उपलब्धता क्षेत्र

VPC में चल रहे एक उदाहरण के लिए, VPC ID मान को सहेजें।

EC2-Classic के लिए : यदि एक लोचदार IP पता ( Elastic IP ) एक उदाहरण के लिए बनाया गया है, तो उसका मान भी सहेजा जाना चाहिए।

सेव करने के लिए इंस्टेंस सेटिंग्स
क्लिक करने योग्य छवि

ब्लॉक स्टोरेज आइडेंटिफायर ( ईबीएस आईडी ) प्राप्त करने के लिए, रूट डिवाइस के नाम पर क्लिक करें।

ईबीएस आईडी


चरण 2. एक अस्थायी उदाहरण बनाना


अगला चरण एक उदाहरण बनाना है जिसके साथ आप मूल उदाहरण पर कुंजियों को पुनर्स्थापित करेंगे। आप इस चरण को छोड़ सकते हैं यदि आपके पास एक ही चल रहे इंस्टेंस (उपलब्धता क्षेत्र) में स्थित इंस्टेंस है जैसा कि एक ही है, और उसी समय इसे उसी एएमआई का उपयोग करके बनाया गया था या उस पर ऑपरेटिंग सिस्टम का संस्करण आपको मूल उदाहरण से डिस्क को कनेक्ट करने की अनुमति देगा और SSH कुंजी कॉपी करें। यदि ऐसा कोई उदाहरण नहीं है, तो निम्न कार्य करें:

  • EC2 कंसोल (डैशबोर्ड पर या इंस्टेंस मेनू में) पर जाएं और लॉन्च इंस्टेंस पर क्लिक करें
  • एएमआई ( एक अमेज़ॅन मशीन छवि चुनें ) पृष्ठ पर, उस का चयन करें जिसका उपयोग मूल उदाहरण बनाने के लिए किया गया था (आपने इसे पहले चरण में लिखा था - एएमआई आईडी )। यदि किसी कारण से यह एएमआई उपलब्ध नहीं है, तो आप मूल उदाहरण से एक छवि बना सकते हैं और इसका उपयोग कर सकते हैं, या एएमआई के प्रकार का चयन कर सकते हैं जिससे आप पुनर्स्थापित किए गए इंस्टेंस के रूट डिस्क को कनेक्ट कर सकते हैं
  • एक इंस्टेंस प्रकार चुनें पृष्ठ पर, सबसे सस्ता प्रकार उपलब्ध चुनें।
  • कॉन्फ़िगर इंस्टेंस विवरण पृष्ठ पर, हमारे उदाहरण के समान उपलब्धता ज़ोन निर्दिष्ट करें। यदि यह VPC में चल रहा है, तो नेटवर्क आइटम में उसी VPC का चयन करें और इस क्षेत्र में सबनेट निर्दिष्ट करें।

    उपलब्धता क्षेत्र कॉन्फ़िगर करना

    हालाँकि, नेटवर्क इंटरफ़ेस सेटिंग्स को बदलने की कोई आवश्यकता नहीं है।
  • Add Storage पेज पर किसी भी तरह के बदलाव की आवश्यकता नहीं है।
  • टैग पृष्ठ पर ( टैग जोड़ें ), अस्थायी उदाहरण के लिए एक नाम जोड़ें, ताकि यह पहचानना आसान हो और फिर इंस्टेंस आईडी और ईबीएस आईडी को समेटने में समय व्यतीत न करें, क्योंकि उन पृष्ठों पर जहां आपको यह निर्धारित करना होगा कि आप किस उदाहरण या वॉल्यूम के साथ काम कर रहे हैं, शीर्षक में। यह मान दिखाई देगा।

    टैग टैग पेज पर नाम

  • समीक्षा और लॉन्च पर क्लिक करें और फिर लॉन्च करें
  • अंतिम चरण मौजूदा कुंजी जोड़ी का चयन करना या नया बनाना है। कुंजी फ़ाइल (पीएम) डाउनलोड करें और बैकअप करना न भूलें ताकि सभी ऑपरेशनों को फिर से प्रदर्शन न करना पड़े।

    सेविंग कीपर
  • फ़ाइल को सहेजने के बाद, इंस्टेंस को लॉन्च इंस्टेंस बटन के साथ लॉन्च करें


चरण 3. रूट डिस्क को पुनर्स्थापित मशीन से अस्थायी उदाहरण से कनेक्ट करना


सबसे पहले आपको डिस्क को मूल उदाहरण से डिस्कनेक्ट करने और इसे एक अस्थायी से कनेक्ट करने की आवश्यकता है। चूंकि यह रूट डिस्क है, इसलिए इसे डिस्कनेक्ट करने से पहले मूल उदाहरण को रोकना होगा।

  • इंस्टेंस सेक्शन में EC2 कंसोल पर जाएं और मूल उदाहरण का चयन करें (इसे पहले दर्ज की गई इंस्टेंस आईडी द्वारा या अस्थायी नाम बनाते समय आपके द्वारा निर्दिष्ट एक नाम से निर्धारित किया जा सकता है)।

    इंस्टेंट स्टॉप

    मेनू क्रियाओं में अगला - इंस्टेंस स्टेट - स्टॉप

    चेतावनी! जब उदाहरण बंद हो जाता है, तो स्थानीय संग्रहण (Amazon EC2 Instance Store) का सारा डेटा मिटा दिया जाता है। यदि आपके पास ऐसे वॉल्यूम पर डेटा है, तो यदि आवश्यक हो, तो उन्हें स्थायी भंडारण में स्थानांतरित करके उनकी सुरक्षा का ख्याल रखें।
  • उदाहरण बंद कर दिए जाने के बाद, ऐलस्टिक ब्लॉक स्टोर - वॉल्यूम अनुभाग पर जाएं और मूल उदाहरण के रूट वॉल्यूम का चयन करें। इसे संग्रहीत वॉल्यूम आईडी द्वारा या अटैचमेंट सूचना कॉलम की जानकारी के आधार पर निर्धारित किया जा सकता है, जिसमें उदाहरण का नाम है।

    म्यूट ड्राइव

    अगला कार्य मेनू में - वॉल्यूम को अलग करें
  • इस वॉल्यूम को एक अस्थायी उदाहरण से कनेक्ट करें। ऐसा करने के लिए, इसे फिर से चुनें, फिर क्रियाओं में - वॉल्यूम मेनू संलग्न करें और दिखाई देने वाले संवाद बॉक्स में, अपना अस्थायी उदाहरण निर्दिष्ट करें।

    ड्राइव कनेक्शन

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

    AWS मार्केटप्लेस कोड के साथ ड्राइव कनेक्ट करने में त्रुटि

    इस मामले में, हमारे अस्थायी उदाहरण को रोकें और मूल उदाहरण के रूट वॉल्यूम को अस्थायी उदाहरण से जोड़ने के लिए चरणों को दोहराएं। दूसरा प्रयास सफल होना चाहिए।
  • अब आपको यह देखना चाहिए कि दोनों ड्राइव एक अस्थायी उदाहरण से जुड़े हैं।

    दोनों ड्राइव एक अस्थायी उदाहरण से जुड़े हैं
  • यदि आपने उदाहरण बंद कर दिया है, तो उसे चलाएं:

    • नेविगेशन बार के इंस्टेंस सेक्शन में जाएँ।
    • एक अस्थायी उदाहरण चुनें
    • मेनू क्रियाओं में अगला - इंस्टेंस राज्य - प्रारंभ


चरण 4. SSH के माध्यम से उदाहरण से कनेक्ट करने के लिए कुंजी तैयार करना


लिनक्स उपयोगकर्ताओं को किसी भी अतिरिक्त कुंजी को उत्पन्न करने की आवश्यकता नहीं है। आपको केवल इस फ़ाइल को पढ़ने की अनुमति देने की आवश्यकता है:

chmod 400 my-keypair.pem

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

  • ओपन पुट्टीजेन ( पुट्टी के साथ स्थापित)
  • RSA मापदंडों में 2048 बिट का चयन करें

    आरएसए 2048 बिट
  • लोड क्लिक करके सहेजी गई pem कुंजी डाउनलोड करें (किसी मौजूदा निजी कुंजी फ़ाइल को लोड करें)
  • पासफ़्रेज़ ( कुंजी पासफ़्रेज़ ) निर्दिष्ट करें और इसकी पुष्टि करें ( पासफ़्रेज़ की पुष्टि करें )। यह आवश्यक नहीं है, लेकिन सुरक्षित है। अंतर केवल इतना है कि जब इस कुंजी का उपयोग करके कनेक्ट किया जाता है, तो आपको हमेशा प्रविष्टि की पुष्टि करने के लिए इस वाक्यांश को दर्ज करने के लिए कहा जाएगा
  • अस्थायी उदाहरण के निर्माण के दौरान कुंजी जोड़ी ( KeyPair ) बनाते समय आपके द्वारा निर्दिष्ट नाम से फ़ाइल को सहेजें (नाम pem कुंजी के नाम के साथ मेल खाता है)

चाबी तैयार है।


चरण 5. एसएसएच के माध्यम से एक अस्थायी उदाहरण से कनेक्ट करें


कुंजी का उपयोग करके पोर्ट 22 पर कनेक्ट करें। उपयोगकर्ता नाम निर्भर करता है जिस पर AMI का उपयोग उदाहरण बनाने के लिए किया गया था। आपने इसे शुरू में ही लिख दिया था। निम्नलिखित उपयोगकर्ता नाम संभव हैं:

  • Amazon Linux 2 या Amazon Linux AMI - ec2-user
  • सेंटोस एएमआई - सेंटोस
  • डेबियन एएमआई - व्यवस्थापक या रूट
  • फेडोरा AMI - ec2-user या फेडोरा
  • RHEL AMI - ec2-user या root
  • SUSE AMI - ec2-user या root
  • उबंटू एएमआई - ubuntu
  • बाकी के लिए, यदि नाम ec2-user और root काम नहीं करते हैं, तो अपने AMI प्रदाता से संपर्क करें

होस्ट नाम जिसे आप कनेक्ट करना चाहते हैं, वह user@aws-host.amazon.com है , जहाँ उपयोगकर्ता ऊपर वर्णित नाम है, और aws-host.amazon.com आपके उदाहरण का आईपी पता है, जिसे विस्तृत जानकारी टैब पर पाया जा सकता है। (इससे आपने शुरुआत में ही मापदंडों को बचा लिया)। पैरामीटर को आईपीवी 4 पब्लिक आईपी कहा जाता है। कृपया ध्यान दें कि यदि आप इलास्टिक आईपी का उपयोग नहीं करते हैं, तो हर बार जब आप उदाहरण शुरू करते हैं, तो इसका एक नया आईपी-पता होगा।

विंडोज उपयोगकर्ताओं के लिए कनेक्शन निर्देश
  • PuTTY लॉन्च करें
  • होस्ट नाम फ़ील्ड में, पता उपयोगकर्ता नाम @ ip- पता स्वरूप में है

    PuTTY कॉन्फ़िगर करें। होस्ट का नाम

  • कनेक्शन पर जाएं - एसएसएच - प्रामाणिक अनुभाग और पीपीके कुंजी डाउनलोड करें (प्रमाणीकरण के लिए निजी कुंजी फ़ाइल)
  • खोलें पर क्लिक करें और फिर सर्वर पर भरोसा करने के लिए सहमत हों
  • यदि आपने ppk कुंजी बनाते समय पासफ़्रेज़ निर्दिष्ट किया है, तो प्रविष्टि की पुष्टि करने के लिए इसे दर्ज करें:

     Using username "ubuntu". Authenticating with public key "imported-openssh-key" Passphrase for key "imported-openssh-key": 

  • आप सर्वर पर हैं।

    सफल सर्वर लॉगिन



चरण 6. एक अस्थायी उदाहरण से मूल को कॉपी करना


उस वॉल्यूम को माउंट करें जिसे आप अस्थायी उदाहरण से कनेक्ट करते हैं ताकि आप इसकी फाइल सिस्टम तक पहुंच सकें।

पर्वत विभाजन
उदाहरण के लिए, यदि ड्राइव का नाम /dev/sdf (यह आपके उदाहरण पर अलग-अलग दिखाई दे सकता है), /mnt/tempvol में वॉल्यूम को माउंट करने के लिए निम्न कार्यों का उपयोग करें:

  • मैप की गई ड्राइव के विभाजन नामों को निर्धारित करें:

    [user ~]$ lsblk

     NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 10G 0 disk └─xvda1 202:1 0 10G 0 part / xvdf 202:80 0 10G 0 disk └─xvdf1 202:81 0 10G 0 part 

    /dev/xvda1 और /dev/xvdf1 डिस्क विभाजन हैं। /dev/xvdf1 में माउंट पॉइंट (MOUNTPOINT) नहीं है, इसलिए यह डिस्क विभाजन है जिसे हमने पहले जोड़ा था।
  • विभाजन माउंट करने के लिए एक अस्थायी निर्देशिका बनाएं:

    [user ~]$ sudo mkdir /mnt/tempvol
  • बनाई गई निर्देशिका में विभाजन को माउंट करें:

    [user ~]$ sudo mount /dev/ xvdf1 /mnt/tempvol


अस्थायी विभाजन से माउंट किए गए विभाजन में SSH कुंजी की प्रतिलिपि बनाएँ।

चेतावनी! कमांड लाइन पर दिए गए उपयोगकर्ता नाम का उपयोग करें। यह आवश्यक है, क्योंकि इस तथ्य के बावजूद कि आप एक मानक उपयोगकर्ता नाम के साथ सफलतापूर्वक जुड़े हुए हैं, जो ऑपरेटिंग सिस्टम (चरण 5 में वर्णित) पर निर्भर करता है, एडब्ल्यूएस मार्केटप्लेस से एएमआई में यह लॉग इन करने के बाद अलग हो सकता है। उदाहरण के लिए, बिटमनी द्वारा प्रमाणित एएमआई वर्डप्रेस के लिए, जब एसएसएच के माध्यम से लॉग इन किया जाता है, तो उबंटू के लिए मानक लॉगिन ubuntu हालाँकि, लॉग इन करने के बाद उपयोगकर्ता नाम bitnami

कॉपी कीज़
उदाहरण के लिए, यदि उपयोगकर्ता नाम ubuntu , तो कॉपी करने के लिए निम्नलिखित कमांड का उपयोग करें:

[user ~]$ cp .ssh/authorized_keys /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys

यदि आपके पास /mnt/tempvol में फ़ाइलों को संपादित करने की अनुमति नहीं है, तो sudo का उपयोग करके फ़ाइलों को कॉपी करें और यह सुनिश्चित करने के लिए अधिकारों की जांच करें कि आप मूल उदाहरण तक पहुँच सकते हैं:

  • फ़ाइल अनुमतियां जांचें:

    [user ~]$ sudo ls -l /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys
    total 4
    -rw------- 1 200 500 392 Aug 15 00:06 authorized_keys

    उदाहरण में, 200 उपयोगकर्ता आईडी है और 500 समूह आईडी है।
  • कुंजी प्रतिलिपि कमांड को sudo का उपयोग करके पुनः आरंभ करें:

    [user ~]$ sudo cp .ssh/authorized_keys /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys

  • जाँच करें कि क्या फ़ाइल पर अनुमतियाँ बदल गई हैं:

    [user ~]$ sudo ls -l /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys

    यदि अधिकार बदल गए हैं, तो उन्हें पुनर्स्थापित करें:

    [user ~]$ sudo chown 200 : 500 /mnt/tempvol/home/ ubuntu /.ssh/authorized_keys


अनुभाग को अनमाउंट करें:

[user ~]$ sudo umount /mnt/tempvol

चरण 7. एसएसएच के माध्यम से बहाल पहुंच के साथ उदाहरण शुरू करना


  • EC2 कंसोल में, उस ड्राइव का चयन करें जिसे आपने अस्थायी से जोड़ा है, और मेनू में: क्रियाएँ - डिटैच वॉल्यूम । जब तक डिस्क की स्थिति उपलब्ध नहीं हो जाती तब तक प्रतीक्षा करें (आप जानकारी को अपडेट करने के लिए रिफ्रेश बटन का उपयोग कर सकते हैं)।

    यदि अनुभाग में AWS मार्केटप्लेस कोड हैं तो उदाहरण को पूर्व-समाप्त करना याद रखें।
  • उसी ड्राइव के लिए, एक्शन मेनू पर जाएं - वॉल्यूम संलग्न करें
  • मूल उदाहरण का चयन करें और रूट डिस्क का नाम निर्दिष्ट करें जिसे आपने बहुत शुरुआत में दर्ज किया था।

    ड्राइव कनेक्शन
    क्लिक करने योग्य छवि

    अटैच पर क्लिक करें
  • उदाहरण चलाना
  • EC2-classic के लिए : यदि इलास्टिक आईपी को मूल उदाहरण के लिए कॉन्फ़िगर किया गया था, तो इसे इसके साथ फिर से जोड़ें:

    • नेविगेशन बार के इलास्टिक आईपी सेक्शन में जाएँ।
    • उस इलास्टिक आईपी पते का चयन करें जिसे आपने शुरुआत में लिखा था
    • अगला कार्य - एसोसिएट पता
    • मूल उदाहरण आईडी चुनें और एसोसिएट पर क्लिक करें


चरण 8. प्रवेश की जाँच करें


जेनरेट की गई कुंजी का उपयोग करके रिस्टोर की गई पहुंच से कनेक्ट करें।

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

चरण 9. अंतिम चरण


यदि आपने सभी ऑपरेशन करने के लिए एक नया अस्थायी उदाहरण बनाया है, और किसी मौजूदा का उपयोग नहीं किया है, तो इसे रोकें यदि आपको अब आवश्यकता नहीं है:

  • नेविगेशन बार के इंस्टेंस सेक्शन में जाएँ।
  • एक अस्थायी उदाहरण चुनें
  • मेनू क्रियाओं में अगला - इंस्टेंस राज्य - समाप्त करें

इस तरह से आपको लिनक्स अमेज़ॅन ईसी 2 उदाहरण तक पहुंच प्राप्त हुई।

Source: https://habr.com/ru/post/hi420297/


All Articles