لقد قمت بإنشاء زوج مفاتيح باستخدام ssh-keygen وحصلت على كلاسيكيتين id_rsa و id_rsa.pub.

لقد قمت باستيراد المفتاح العام في حساب AWS EC2 الخاص بي.

لقد قمت الآن بإنشاء مثيل windows ولإلغاء تشفير كلمة مرور المثيل هذه ، تطلب وحدة تحكم AWS مني ملف .pem. كيف يمكنني الحصول على ملف .pem هذا من ملفي id_rsa و id_rsa.pub؟

answer

ووفقا ل هذا ، هذا الأمر يمكن أن تستخدم:

ssh-keygen -f id_rsa -e -m pem

سيؤدي هذا إلى تحويل مفتاحك العام إلى تنسيق متوافق مع OpenSSL. لديك الخاص المفتاح هو بالفعل في شكل PEM، ويمكن استخدامها كما هو (كما ذكر مايكل هامبتون).

الاختيار مزدوج إذا AWS لا يسأل عن (X.509) شهادة في تنسيق PEM، الذي سيكون شيء مختلف من مفاتيح SSH الخاص بك.

استخدام ssh-keygenلتصدير المفتاح بتنسيق .pem يعمل بالنسبة لي.

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

ثم ببساطة انسخ .pemالمفتاح حسب الضرورة.

كمرجع:

  • في -f id_rsa.pubجزء يشير إلى ملف الإدخال قراءة من
  • -m 'PEM يشير إلى نوع ملف PEM
  • و -eيشير الخيار الذي خرج سيتم تصدير

في البداية ، عند الاستخدام ssh-keygen، يمكنني إنشاء مفتاح عام كان متوافقًا مع AWS EC2 ، ولكن كان لدي مشكلات في إنشاء مفاتيح خاصة متوافقة. يُنشئ ما يلي كلاً من أزواج المفاتيح العامة والخاصة المتوافقة مع AWS EC2.

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

إليك معلومات عن كل معلمة:

  • -P: عبارة عن عبارة المرور. تم ضبطه على فارغ عن قصد.
  • -t: يحدد نوع المفتاح المراد إنشاؤه. يتطلب زوج مفاتيح AWS EC2 RSA. إنها تجربتي أن هذا يتعلق بالمفتاح العام الذي تم إنشاؤه.
  • -b: يحدد عدد وحدات البت في المفتاح. الأطوال المدعومة هي 1024 و 2048 و 4096. إذا قمت بالاتصال باستخدام SSH أثناء استخدام EC2 Instance Connect API ، فإن الأطوال المدعومة هي 2048 و 4096.
  • -m: يحدد تنسيق مفتاح لتوليد المفتاح. سيؤدي تعيين تنسيق "PEM" عند إنشاء نوع مفتاح خاص مدعوم إلى تخزين المفتاح في تنسيق المفتاح الخاص PEM القديم. يحتاج زوج مفاتيح 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

id_rsa هو الملف الذي يجب عليك استخدامه لفك تشفير كلمة مرور مثيل Windows EC2 ، ولكن تأكد فقط من أن الملف الذي تنسخ لصقه ليس محميًا بالعبارة.

لقد قمت بحل مشكلة الحصول على id_rsaملف غير محمي مؤقتًا بشيء مثل:

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

عند تشغيل مثيل EC2 ، فإنك تقوم بتعيين زوج مفاتيح له (أو لا شيء). لا يمكن تغييره بعد ذلك.

فقط باستخدام ملف .pem هذا من زوج المفاتيح هذا ، ستتمكن من فك تشفير كلمة مرور Windows.

كان من الممكن تنزيل ملف .pem عند إنشاء زوج المفاتيح. لا يمكنك الحصول عليه مرة أخرى. إذا كنت قد فقدتها ، فلن يحالفك الحظ.

لا يمكنك استخدام ملف .pem قمت بإنشائه بنفسك إلا إذا قمت باستيراد هذا المفتاح إلى AWS قبل بدء تشغيل المثيل وتخصيصه للمثيل.

ببساطة ، إذا لم يكن لديك ملف .pem الأصلي ، فلن تتمكن من الحصول على كلمة المرور.

تحرير: بعد إعادة قراءة السؤال ، أدركت أن OP قد استورد مفتاحه إلى AWS.