سؤال كيف يمكنني استرداد المفتاح العام من مفتاح خاص SSH؟


مفتاح خاص SSH كما تم إنشاؤه من قبل ssh-keygen يحتوي على جزء مفتاح عام. كيف استرد هذا المفتاح العام من المفتاح الخاص؟ لقد فقدت مفتاحي العام واحتجت إلى وضع محتويات هذا المفتاح العام في الخوادم authorized_keys الملف ولا ترغب في إنشاء زوج مفاتيح جديد.

بدلا من صياغة: كيف يمكنني إنشاء id_rsa.pub ملف من id_rsa ملف؟


371
2017-07-18 09:57


الأصل


pbcopy > ~/.ssh/id_rsa.pub وجه الفتاة. - Nick T
NickT - pbcopy هو أمر MacOSX. بالإضافة إلى ذلك ، لا جدوى من إعادة تمهيد أو تسجيل الخروج أو نسخ أي شيء آخر إلى الحافظة. - jsnfwlr


الأجوبة:


لقد وجدت الإجابة على خطأ الخادم: إنشاء مفتاح SSH عام من المفتاح الخاص؟

الخيار -y يخرج المفتاح العام:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

كملاحظة جانبية ، يتم فقد تعليق المفتاح العام. لقد أتيحت لي موقعًا يتطلب التعليق (Launchpad؟) ، لذا تحتاج إلى تعديل ~/.ssh/id_rsa.pub وإلحاق تعليق على السطر الأول بمسافة بين التعليق والبيانات الرئيسية. يظهر مفتاح عام كمثال مبتورًا أدناه.

ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu

بالنسبة للمفاتيح التي تمت إضافتها إلى وكيل SSH (وهو برنامج يعمل في الخلفية ويتجنب الحاجة إلى إعادة إدخال عبارة مرور المفتاح مرارًا وتكرارًا) ، يمكنك استخدام ssh-add -L أمر لسرد المفاتيح العامة للمفاتيح التي تمت إضافتها إلى الوكيل (عبر ssh-add -l). يكون ذلك مفيدًا عند تخزين مفتاح SSH على بطاقة ذكية (ولا يمكن الوصول إلى ملف المفتاح الخاص).


577
2017-07-18 10:12



لقد صنعتها قطعة من الكعكة. شكر - bragboy
يرجى ملاحظة أن ملف المفتاح الخاص بك ~/.ssh/id_rsa يجب أن يقتصر على اسم المستخدم الخاص بك. استعمال $ sudo chmod 600 ~/.ssh/id_rsa وأدخل بيانات اعتماد الجذر لتقييدها ، ثم يمكنك إخراج ملف المفتاح العام. خلاف ذلك سوف تحصل على تحذير مفتاح الملف الخاص غير المقيد. - Mark Mikofski
MarkMikofski لا حاجة ل sudo، من المفترض أن تمتلك المفتاح الخاص بالفعل. خلاف ذلك لا يمكنك قراءتها في المقام الأول. - Lekensteyn
@ Lekensteyn شكرا ، بالطبع أنت على حق! أيضا 400 موصى به نظرًا لعدم الحاجة إلى الكتابة لكتابة ملف المفتاح الخاص. يجب تصحيح الأمر $ chmod 400 ~/.ssh/id_rsa - Mark Mikofski
يتم فقدان تعليق المفتاح الخاص. نرى stackoverflow.com/questions/38290929/... - weberjn


هذا هو الحل خصيصًا للمستخدمين الذين يستخدمون Windows إلى SSH في أجهزتهم البعيدة ، بما في ذلك الصور السحابية على Amazon AWS و GCE.

(تنصل)

لقد استخدمت هذا الحل مؤخرًا لتسجيل الدخول عن بُعد إلى صور VM جديدة منتشرة على GCE.


الأدوات المستخدمة:

  1. puttygen
  2. وين إس سي بي

خطوات التنفيذ:

  1. توليد زوج مفتاح عام / خاص باستخدام puttygen.
  2. حمِّل مفتاحًا عامًا إلى خادمك في السحاب أو الموقع البعيد.

وصف (كيفية القيام بذلك):

  1. إنشاء مفتاح / زوج أو استخدام مفتاح خاص موجود:

    إذا كان لديك مفتاح خاص:

    افتح puttygen ، واضغط على زر التحميل وحدد ملفك الخاص (* .pem).

    اذا فعلت ليس لديك مفتاح خاص:

    • فتح المعجون ،
    • حدد نوع المفتاح المطلوب SSH2 DSA (يمكنك استخدام RSA أو DSA) داخل قسم Parameters ... ومن المهم ترك حقل عبارة المرور فارغًا ،
    • اضغط على إنشاء واتبع الإرشادات لإنشاء زوج المفاتيح (عام / خاص).

    Sample Key Generation pic

  2. قم بإنشاء ملف "authorized_keys" جديد (مع المفكرة):

    انسخ بيانات مفتاحك العام من "المفتاح العام للصق في ملف authorizedSSH authorized_keys" في مولد مفاتيح PuTTY ، ثم الصق بيانات المفتاح إلى ملف "authorized_keys".

    تأكد من وجود سطر واحد فقط من النص في هذا الملف.

  3. قم بتحميل المفتاح إلى خادم Linux:

    • افتح WinSCP ،
    • حدد بروتوكول ملف SFTP وقم بتسجيل الدخول باستخدام بيانات اعتماد SSH الخاصة بك.
    • عند النجاح ، سترى بنية الدليل الرئيسي في جهازك البعيد.

    قم بتحميل ملف authorized_keys إلى الدليل الرئيسي في الجهاز البعيد.

  4. تعيين الأذونات المناسبة:

    اصنع .ssh الدليل (إذا لم يكن موجودًا)

    انسخ ال authorized_keysملف .ssh (هذا سوف يحل محل أي موجود authorized_keys ملف؛ يحيط علما بهذا).

    إذا كان الملف موجودًا ، فما عليك سوى إضافة محتويات هذا الملف إلى الملف الموجود.

    تشغيل الأوامر لتعيين الأذونات:

    sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
    

الآن سوف تكون قادراً على ssh إلى جهاز بعيد دون إدخال بيانات الاعتماد في كل مرة.

قراءة متعمقة:

  1. توليد وتحميل مفاتيح SSH ضمن Windows

  2. المصادقة بدون كلمة المرور باستخدام مفتاح OpenSSH وشهادات .pem و .pub


12
2017-11-20 06:18



إذا تم تشفير الدليل الرئيسي ، فقم بما يلي: askubuntu.com/questions/439184/... - devprashant
على الرغم من أن إجابتك ليست ذات صلة بالسؤال ، فأنا أصوت لها بسبب حماسك. - Truong Nguyen