إرشادات خطوة بخطوة لاستعادة الوصول إلى نسخ Linux Amazon EC2 عند فقد ملف pem

إذا لم يتم إنشاء زوج مفاتيح (KeyPair) للوصول إليه عبر SSH أو فقدهما أثناء إنشاء مثيل Linux في AWS ، فيجب تنفيذ عدد من العمليات للوصول إلى الجهاز. لا يمكنك إضافة مفاتيح إلى مثيل قيد التشغيل بالفعل من خلال وحدة تحكم AWS. هناك ثلاث طرق يمكننا من خلالها استعادة وصول SSH إلى مثيل.

أسهل طريقة هي تكوين المفتاح باستخدام آلية cloud-init (شكرًا للتلميح من yusman ). ولكن هذا لا يعمل إذا كانت الحقوق في الدليل /home تالفة أو أن التوزيع لا يدعم توجيهات cloud-init.

الطريقة الثانية هي إنشاء صورة (Amazon Machine Image) من مثيل موجود ثم تشغيل مثيل جديد بناءً عليه ، ولكن باستخدام مفتاح. وبالتالي ، سيتم استنساخ الآلة الموجودة بالفعل مع الاختلاف الوحيد الذي يمكن في المرحلة الأخيرة إنشاء مفاتيح جديدة. قد يستغرق إنشاء صورة وقتًا طويلاً لمثيل به أقراص كبيرة ، وسيتعين عليك تهيئة جميع الخدمات المرتبطة بهذا الجهاز من جديد. لذلك ، ستستغرق هذه الطريقة في معظم الحالات وقتًا أطول.

تصف مستندات أمازون الرسمية طريقة أخرى . يسمح لك باستعادة الوصول وتقليل تكلفة خدمات إعادة التكوين (مقارنة بالطريقة الثانية) ، والتي ترتبط بمثيل يتم فقدان الوصول إليه. تقدم المقالة وصفًا تفصيليًا لها.

إنتباه! تعمل هذه الطريقة فقط مع المثيلات التي تستخدم تخزين الكتلة (Amazon Elastic Block Store) كجذر ، ولا تعمل لتخزين المثيلات المحلية (Amazon EC2 Instance Store).

لمعرفة نوع جهاز الجذر الذي تستخدمه ، افتح وحدة تحكم Amazon EC2 ، وانتقل إلى المثيلات ، وحدد مثيلًا وتحقق من قيمة معلمة نوع جهاز الجذر في اللوحة بمعلومات تفصيلية.

نوع الجهاز الجذر المثيل

إذا كان جهازك يحتوي على EBS ، فإن هذه الطريقة مناسبة لك.

الخطوة 1. التحضير


تحتاج أولاً إلى حفظ بعض المعلومات حتى لا تضطر إلى تشتيت انتباهك ولا تنتقل إلى الشاشات الأخرى (خاصة وأن ذلك سيكون غير مريح للغاية). يمكن العثور على جميع البيانات في المعلومات التفصيلية للمثيل (أنت تعرف بالفعل كيفية الوصول إلى هناك). سجل الإعدادات التالية:

  • معرف المثيل
  • معرف AMI
  • معرف EBS
  • جهاز الجذر
  • منطقة الإتاحة

لمثيل يعمل في VPC ، احفظ قيمة معرف VPC .

بالنسبة لـ EC2-classic : إذا تم إنشاء عنوان IP مرن (عنوان IP المرن ) كمثال ، فيجب أيضًا حفظ قيمته.

إعدادات المثيل للحفظ
صورة قابلة للنقر

للحصول على معرف تخزين الكتلة ( معرف EBS ) ، انقر فوق اسم جهاز الجذر .

معرف EBS


الخطوة 2. إنشاء نسخة مؤقتة


الخطوة التالية هي إنشاء مثيل ستستعيد به المفاتيح الموجودة على المثيل الأصلي. يمكنك تخطي هذه الخطوة إذا كان لديك مثيل آخر قيد التشغيل يقع في نفس المنطقة (منطقة التوفر) مثل المنطقة المستعادة ، وفي نفس الوقت تم إنشاؤه باستخدام نفس AMI أو إصدار نظام التشغيل عليه سيسمح لك بتوصيل القرص من المثيل الأصلي و انسخ مفاتيح SSH إليها. إذا لم يكن هناك مثل هذا المثال ، فقم بما يلي:

  • انتقل إلى وحدة تحكم EC2 (على لوحة التحكم الرئيسية أو في قائمة المثيلات ) وانقر فوق تشغيل مثيل
  • في صفحة تحديد AMI ( اختر صورة آلة أمازون ) ، حدد الخيار الذي تم استخدامه لإنشاء المثيل الأصلي (الذي كتبته في الخطوة الأولى - معرف AMI ). في حالة عدم توفر AMI لسبب ما ، يمكنك إنشاء صورة من المثيل الأصلي واستخدامها ، أو تحديد نوع AMI الذي يمكنك توصيل القرص الجذر للمثيل الذي تمت استعادته
  • في الصفحة اختيار نوع مثيل ، حدد أرخص نوع متاح.
  • في صفحة تكوين تفاصيل المثيل ، حدد نفس منطقة الإتاحة كما في مثيلنا. إذا كان يعمل في VPC ، حدد نفس VPC في عنصر الشبكة وحدد الشبكة الفرعية في هذه المنطقة.

    تكوين منطقة الإتاحة

    ومع ذلك ، ليست هناك حاجة لتغيير إعدادات واجهات الشبكة.
  • لا توجد تغييرات مطلوبة على صفحة إضافة التخزين .
  • في صفحة العلامات ( إضافة علامات ) ، أضف اسمًا للمثيل المؤقت بحيث يسهل التعرف عليه ثم لا تقضي وقتًا في التوفيق بين معرّف المثيل ومعرف EBS ، نظرًا لأنه في الصفحات التي ستحتاج فيها إلى تحديد المثيل أو المجلد الذي تعمل معه ، في العنوان ستظهر هذه القيمة.

    الاسم في صفحة إضافة علامات

  • انقر فوق مراجعة وتشغيل ثم تشغيل
  • الخطوة الأخيرة هي تحديد زوج مفاتيح موجود أو إنشاء زوج جديد. قم بتنزيل الملف الرئيسي (pem) ولا تنسَ النسخ الاحتياطي حتى لا تتم جميع العمليات مرة أخرى.

    إنقاذ KeyPair
  • بعد حفظ الملف ، قم بتشغيل المثيل باستخدام زر مثيلات التشغيل


الخطوة 3. توصيل القرص الجذر من الجهاز المستعاد إلى مثيل مؤقت


تحتاج أولاً إلى فصل القرص عن المثيل الأصلي وتوصيله بواحد مؤقت. نظرًا لأن هذا هو القرص الجذر ، يجب إيقاف المثيل الأصلي قبل فصله.

  • انتقل إلى وحدة تحكم EC2 في قسم المثيلات وحدد المثيل الأصلي (يمكن تحديده من خلال معرف المثيل الذي تم تسجيله سابقًا أو باسم يختلف عن الاسم الذي حددته عند إنشاء المثيل المؤقت).

    إيقاف المثيل

    التالي في قائمة الإجراءات - حالة الحالة - توقف .

    إنتباه! عندما يتوقف المثيل ، يتم مسح جميع البيانات الموجودة على التخزين المحلي (Amazon EC2 Instance Store). إذا كانت لديك بيانات حول هذه الأحجام ، فاحرص على سلامتها عن طريق نقلها إلى التخزين الدائم ، إذا لزم الأمر.
  • بعد إيقاف المثيل ، انتقل إلى مخزن الكتل المرنة - وحدات التخزين وحدد حجم الجذر للمثيل الأصلي. يمكن تحديدها من خلال معرف وحدة التخزين المخزنة أو استنادًا إلى معلومات من عمود معلومات المرفقات ، والتي تحتوي على اسم المثيل.

    محرك كتم الصوت

    بعد ذلك في قائمة الإجراءات - فصل الحجم
  • قم بتوصيل وحدة التخزين هذه بمثيل مؤقت. للقيام بذلك ، حدده مرة أخرى ، ثم في قائمة الإجراءات - إرفاق حجم الصوت وفي مربع الحوار الذي يظهر ، حدد المثيل المؤقت الخاص بك.

    اتصال محرك

    ثم انقر فوق إرفاق . إذا تم إنشاء المثيل الأصلي من خلال AWS Marketplace AMI وكان القسم يحتوي على رموز AWS Marketplace ، فستتلقى خطأ يفيد بأنه من المستحيل ربط القسم برموز بمثيل العمل.

    خطأ في توصيل محرك الأقراص برموز سوق AWS

    في هذه الحالة ، أوقف المثيل المؤقت لدينا وكرر الخطوات لربط حجم الجذر للمثيل الأصلي بالمثيل المؤقت. يجب أن تكون المحاولة الثانية ناجحة.
  • يجب أن ترى الآن أن كلا محركي الأقراص متصلان بمثيل مؤقت.

    كلا محركي الأقراص متصلان بمثيل مؤقت
  • إذا أوقفت المثيل ، فقم بتشغيله:

    • انتقل إلى قسم المثيلات من شريط التنقل.
    • اختر نسخة مؤقتة
    • التالي في قائمة الإجراءات - حالة المثيل - ابدأ .


الخطوة 4. إعداد المفاتيح للاتصال بالمثيل عبر SSH


لا يحتاج مستخدمو Linux إلى إنشاء أي مفاتيح إضافية. ما عليك سوى منح أذونات القراءة لهذا الملف:

chmod 400 my-keypair.pem

إعداد المفتاح إذا كنت تقوم بتشغيل Windows
للاتصال بجهاز Linux ، سنستخدم الأداة المساعدة PuTTY ، لذلك إذا لم يكن مثبتًا لديك ، فقم بتنزيله . للاتصال عبر SSH باستخدامه ، ستحتاج إلى مفتاح ppk ، بينما مع AWS ، تم حفظ المفتاح بتنسيق pem . للحصول على مفتاح التنسيق المطلوب ، قم بما يلي:

  • افتح PuTTYgen (مثبت مع PuTTY)
  • حدد 2048 بت في معلمات RSA

    RSA 2048 بت
  • قم بتنزيل مفتاح pem المحفوظ بالنقر فوق تحميل (تحميل ملف مفتاح خاص موجود)
  • حدد عبارة المرور (عبارة المرور الرئيسية ) وقم بتأكيدها ( تأكيد عبارة المرور ). هذا ليس ضروريًا ، ولكنه أكثر أمانًا. والفرق الوحيد هو أنه عند الاتصال باستخدام هذا المفتاح ، سيُطلب منك دائمًا إدخال هذه العبارة لتأكيد الإدخال
  • حفظ الملف بالاسم الذي حددته عند إنشاء زوج المفاتيح ( KeyPair ) أثناء إنشاء المثيل المؤقت (يتزامن الاسم مع اسم مفتاح pem )

المفتاح جاهز.


الخطوة 5. الاتصال بمثيل مؤقت عبر SSH


الاتصال على المنفذ 22 باستخدام المفتاح. يعتمد اسم المستخدم على AMI الذي تم استخدامه لإنشاء المثيل. لقد كتبته في البداية. من الممكن استخدام أسماء المستخدمين التالية:

  • أمازون لينكس 2 أو أمازون لينكس AMI - مستخدم EC2
  • Centos AMI - centos
  • Debian AMI - المسؤول أو الجذر
  • Fedora AMI - مستخدم ec2 أو fedora
  • RHEL AMI - مستخدم EC2 أو الجذر
  • SUSE AMI - مستخدم EC2 أو جذر
  • أوبونتو AMI - أوبونتو
  • بالنسبة للبقية ، إذا لم تعمل الأسماء ec2-user والجذر ، اتصل بمزود AMI

اسم المضيف الذي تريد الاتصال به هو user@aws-host.amazon.com ، حيث يكون المستخدم هو الاسم الموضح أعلاه ، و aws-host.amazon.com هو عنوان IP لمثيلك ، والذي يمكن العثور عليه في علامة تبويب المعلومات التفصيلية (منه قمت بحفظ المعلمات في البداية). تسمى المعلمة IPv4 Public IP . يرجى ملاحظة أنه إذا لم تكن تستخدم عنوان IP المرن ، فسيكون لديه عنوان IP جديد في كل مرة تبدأ فيها المثيل.

تعليمات الاتصال لمستخدمي ويندوز
  • قم بتشغيل PuTTY
  • في حقل اسم المضيف ، يكون العنوان بالتنسيق username @ ip-address

    تكوين PuTTY. اسم المضيف

  • انتقل إلى الاتصال - SSH - قسم Auth وقم بتنزيل مفتاح ppk (ملف المفتاح الخاص للمصادقة)
  • انقر فوق فتح ثم وافق على الوثوق بالخادم
  • إذا قمت بتحديد عبارة مرور عند إنشاء مفتاح 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) ، فقد يكون مختلفًا في AMI من AWS Marketplace بعد تسجيل الدخول. على سبيل المثال ، بالنسبة لـ AMI WordPress Certified by Bitnami ، عند تسجيل الدخول عبر SSH ، فإن تسجيل الدخول القياسي لـ Ubuntu هو ubuntu . ومع ذلك ، فإن اسم المستخدم بعد تسجيل الدخول هو bitnami

نسخ المفاتيح
على سبيل المثال ، إذا كان اسم المستخدم هو ubuntu ، استخدم الأمر التالي لنسخ:

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

إذا لم يكن لديك إذن بتحرير الملفات في /mnt/tempvol ، /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. بدء المثيل بالوصول المستعاد عبر SSH


  • في وحدة تحكم EC2 ، حدد محرك الأقراص الذي قمت بتوصيله بالذاكرة المؤقتة ، وفي القائمة: الإجراءات - فصل وحدة التخزين . انتظر حتى تصبح حالة القرص متاحة (يمكنك استخدام زر التحديث لتحديث المعلومات).

    تذكر إنهاء المثيل مسبقًا إذا كان القسم يحتوي على رموز سوق AWS.
  • لنفس محرك الأقراص ، انتقل إلى قائمة الإجراءات - إرفاق وحدة التخزين
  • حدد المثيل الأصلي وحدد اسم القرص الجذر الذي قمت بتسجيله في البداية.

    اتصال محرك
    صورة قابلة للنقر

    انقر فوق إرفاق
  • مثيل تشغيل
  • بالنسبة لـ EC2-classic : إذا تم تكوين عنوان IP المرن للمثيل الأصلي ، فأعد ربطه به:

    • انتقل إلى قسم عنوان IP المرن في شريط التنقل.
    • حدد عنوان IP المرن الذي كتبته في البداية
    • الإجراءات التالية - عنوان المنتسب
    • حدد معرف المثيل الأصلي وانقر فوق Associate


الخطوة 8. التحقق من الوصول


الاتصال بمثيل الوصول المستعاد باستخدام المفتاح الذي تم إنشاؤه.

إذا كان اسم زوج المفاتيح الجديد مختلفًا عن الاسم السابق ، فتأكد من أنك متصل باستخدام المفتاح الخاص الجديد.

الخطوة 9. المرحلة النهائية


إذا أنشأت مثيلًا مؤقتًا جديدًا من أجل تنفيذ جميع العمليات ، ولم تستخدم مثيلًا موجودًا ، فأوقفه إذا لم تعد بحاجة إليه:

  • انتقل إلى قسم المثيلات من شريط التنقل.
  • اختر نسخة مؤقتة
  • التالي في قائمة الإجراءات - حالة المثيل - إنهاء

بهذه الطريقة استعادت الوصول إلى مثيل Linux Amazon EC2.

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


All Articles