ثابت: لم يتم العثور على طريقة تبادل مفتاح مطابقة



جرب أداة القضاء على المشاكل

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



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



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

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



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

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



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

الطريقة 2: تمكين الخيارات القديمة في OpenSSH

ألقِ نظرة على ما تقرأه رسالة الخطأ بعد الكلمات التي يعرضونها: لمعرفة الخوارزمية التي يفضلها الخادم البعيد. في حين أن معظم الأنظمة يجب أن تستخدم openssh7 ، والذي أدى بالفعل إلى تعطيل تقنية diffie-hellman-group1-sha1 القديمة القديمة ، سيُطلب منك استخدام sha1 إذا كانت لا تزال عالقة في opensh6 أو شيء مشابه.

يركض ssh -oKexAlgorithms = + diffie-hellman-group1-sha1 testhost@example.org مهما كان مضيف الشبكة الفعلي أو عنوان IP للخادم البعيد لإصلاح هذه المشكلة من جانب العميل. إذا أدى ذلك إلى حل المشكلة ، فحينئذٍ كان يبحث عن بروتوكول أقدم قائم على sha1 للاتصال. تم تعطيل هذا الحل القديم المستند إلى sha1 لسبب وجيه ، ولكن يمكنك تجاوزه بشكل دائم باستخدام محرري nano أو vim لفتح الملف ~ / .ssh / config وإضافة الأسطر:

المضيف example.org

KexAlgorithms + diffie-hellman-group1-sha1

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

إذا تلقيت خطأً قبل أن يذكر بروتوكول ssh-dss بدلاً من إصدار sha1 ، فيمكنك بدلاً من ذلك تجربة هذا الأمر متبوعًا باسم مضيفك: ssh -oHostKeyAlgorithms = + ssh-dss ، والتي إذا نجحت ، فستحتاج إلى تعديل ملف ~ / .ssh / config مرة أخرى. بعد سطر المضيف ، أضف علامة تبويب وما يلي:

HostKeyAlgorithms + ssh-dss

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

3 دقائق للقراءة