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

أولاً ، قم بإنشاء كلا المفتاحين بأمر مثل هذا:

ssh-keygen -b 2048 -t rsa -C comment -f ~/.ssh/id_rsa

ثم تقوم بدفع الجزء العام من المفتاح إلى ملف author_keys2

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys2

(ثم ​​chmod إلى 600 أو ما شابه)

وتقوم بتنزيل المفتاح الخاص على جهاز الكمبيوتر الخاص بك (id_rsa) وإدخاله إلى Putty لتتم قراءته والمصادقة عليه.

هل هذه هي الخطوات الصحيحة لتعيين مصادقة المفتاح العام / الخاص لتسجيل الدخول بدون كلمة مرور إلى SSH؟

answer

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

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

نظرًا لأنك تستخدم أزواج مفاتيح ssh (لمحاولة) حل بعض المشكلات المتأصلة في مصادقة كلمة المرور ، فأنت تريد عادةً القيام بالأشياء بهذه الطريقة:

  • قم بإنشاء زوج المفاتيح على نظامك المحلي. من الناحية المثالية ، لن يتم تخزين المفتاح الخاص (أ) على نظام ملفات مشترك (على سبيل المثال ، دليل NFS الرئيسي) ، و (ب) لن يتم تخزينه أبدًا على جهاز كمبيوتر يسمح بتسجيل الدخول عن بُعد.

  • انشر المفتاح العام على نطاق واسع. احتفظ بمفتاحي (مفاتيحي) العلنية على موقع ويب حتى أتمكن من الحصول عليها متى احتجت إليها. ضع المفتاح العام في authorized_keysالملفات المناسبة على الأنظمة التي ستتصل بها.

إذا كنت مصابًا بجنون العظمة بشكل خاص ، فيمكنك تخزين مفتاحك الخاص على محرك أقراص الإبهام ، واستخدام محرك الأقراص فقط لتحميل المفتاح أثناء التشغيل ssh-agent. في هذه المرحلة ، لن تحتاج إلى ملف المفتاح الفعلي بعد الآن.

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

يستخدم المعجون puttygenلتوليد المفتاح. puttygenسيوفر أيضًا المفتاح العام بالتنسيق الصحيح للصقه في نظام العميل. من الأفضل حماية المفتاح بعبارة مرور إذا تم استخدامه لتسجيل الدخول. Pageantأو ssh-agentيمكن استخدامها للاحتفاظ بالمفتاح غير المحمي في الذاكرة بحيث لا تحتاج عبارة المرور إلى إعادة إدخالها في كل اتصال.

بمجرد إضافة مفتاح واحد وتعيين الحماية ، يمكنك إضافة مفاتيح إضافية مع الحاجة إلى إعادة تعيين الأذونات. عادةً ما أقوم بتحميل المفتاح العام من النظام باسم مثل example.pubحيث يكون المثال هو اسم النظام الذي ينتمي إليه المفتاح.

عادت العديد من التطبيقات لاستخدامها authorized_keysكملف مفتاح. يمكن استخدام هذا الملف لتقييد النظام الذي سيتم قبول المفتاح منه ، وفرض تشغيل الأمر ، وتقييد الوصول ، وأشياء أخرى. عرض manالصفحة لمزيد من التفاصيل.

في بعض الحالات ، قد يكون من المفيد أن يكون لديك مفاتيح متعددة على نظام العميل. يمكن القيام بذلك لدعم عمليات الدُفعات التي تعمل بمفاتيح لا تحتوي على كلمة مرور.

يبدو ذلك جيدًا. كثير من الناس يفعلون ذلك في الاتجاه المعاكس (إنشاء المفتاح محليًا ، ثم دفعك .pubإلى الخادم) ، ولكن يمكن لأي منهما العمل.