كيفية إصلاح "تحذير: تم تغيير تعريف المضيف البعيد!"

نشرت: 2024-10-16
جدول المحتويات
  • فهم التحذير
  • التحقق من هوية الخادم
  • الحل 1: إزالة مفتاح المضيف القديم يدويًا (Windows وMac وUbuntu)
  • الحل 2: مسح ملفknown_hosts بالكامل (Windows وMac وUbuntu)
  • الحل 3: تجاهل فحص مفتاح المضيف مؤقتًا (Windows وMac وUbuntu)
  • الحل 4: إضافة مفتاح المضيف الجديد يدويًا (Windows وMac وUbuntu)
  • الحل 5: التحقق من تغييرات عنوان DNS أو IP (Windows وMac وUbuntu)
  • أفضل الممارسات لتجنب هذه المشكلة في المستقبل (Windows وMac وUbuntu)
  • خاتمة

عندما تحاول الاتصال بخادم بعيد باستخدام SSH، قد تظهر لك رسالة الخطأ: "تحذير: تم تغيير تعريف المضيف البعيد!" . هذه الرسالة هي إحدى ميزات الأمان التي يستخدمها SSH لحمايتك من هجمات الوسيط، حيث يمكن لطرف ثالث أن يعترض اتصالك بالخادم.

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

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

قد تكون مهتمًا بقراءة: كيفية إصلاح رفض إذن الخطأ (المفتاح العام)

فهم التحذير

لماذا يظهر التحذير؟

يقوم SSH بتخزين بصمة مفتاح الخادم البعيد في ملف يسمى known_hosts على جهازك المحلي. تُستخدم بصمة الإصبع هذه للتحقق من اتصالك بنفس الخادم في كل مرة تستخدم فيها SSH. إذا تغيرت بصمة الخادم، فسوف يعرض لك SSH التحذير لأنه لا يمكن التأكد مما إذا كانت هوية الخادم قد تغيرت بشكل قانوني أو إذا كان شخص ما يحاول اعتراض اتصالك.

السيناريوهات الشائعة للتحذير:

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

دور ملف known_hosts :

ملف known_hosts هو المكان الذي يقوم فيه SSH بتخزين معلومات حول المضيفين البعيدين الذين اتصلت بهم مسبقًا. يوجد الملف عادةً في الدليل ~/.ssh/ على نظامي التشغيل Mac وUbuntu، وبالنسبة لمستخدمي PuTTY على نظام التشغيل Windows، فإنه يقوم بتخزين مفاتيح المضيف في سجل Windows.

التحقق من هوية الخادم

قبل إجراء أي تغييرات لحل مشكلة " تم تغيير تعريف المضيف البعيد!" "تحذير، من الضروري التحقق مما إذا كانت هوية الخادم قد تغيرت بشكل قانوني. تضمن هذه الخطوة أنك لن تقع ضحية لهجوم رجل في المنتصف.

لماذا يجب عليك التحقق من هوية الخادم أولاً

قد يؤدي تجاهل هذه الخطوة إلى الاتصال بخادم مخترق أو ضار، مما قد يعرض بياناتك أو بيانات اعتمادك للخطر. تعامل دائمًا مع هذا التحذير على محمل الجد، خاصة إذا لم تكن متأكدًا من التغييرات الأخيرة التي تم إجراؤها على الخادم.

خطوات التحقق من هوية الخادم:

  • اتصل بمسؤول الخادم: إذا لم تكن أنت من يقوم بصيانة الخادم، فاتصل بالمسؤول أو موفر الاستضافة واسأل عما إذا تم إجراء أي تغييرات حديثة، مثل تغيير عنوان IP، أو إعادة تثبيت الخادم، أو تجديد المفتاح.
  • قارن بصمة مفتاح المضيف: استخدم الأمر التالي للتحقق من مفتاح مضيف الخادم يدويًا:
     ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

    سيُظهر الإخراج بصمة مفتاح المضيف، والتي يمكنك مقارنتها بالبصمة الموجودة في ملف known_hosts الخاص بك أو طلبها من مسؤول الخادم.

الحل 1: إزالة مفتاح المضيف القديم يدويًا (Windows وMac وUbuntu)

لنظام التشغيل Mac وUbuntu (Linux):

  1. افتح المحطة.
  2. افتح الملف ~/.ssh/known_hosts باستخدام محرر النصوص:
     nano ~/.ssh/known_hosts
  3. ابحث عن السطر الذي يتوافق مع اسم مضيف الخادم البعيد أو عنوان IP.
  4. احذف السطر الذي يحتوي على مفتاح المضيف القديم.
  5. احفظ الملف وأغلق محرر النصوص.
  6. أعد الاتصال بالخادم باستخدام SSH:
     ssh <username>@<hostname>

الإزالة التلقائية (Mac وUbuntu):

بدلاً من تحرير ملف known_hosts يدويًا، يمكنك استخدام الأمر التالي لإزالة مفتاح المضيف القديم تلقائيًا:

 ssh-keygen -R <hostname or IP>

لنظام التشغيل Windows (باستخدام PuTTY):

  1. افتح المعجون .
  2. اضغط على Windows + R ، واكتب regedit ، ثم اضغط على Enter.
  3. انتقل إلى مسار التسجيل:
     HKEY_CURRENT_USER\Software\Myusername\PuTTY\SshHostKeys
  4. حدد موقع الإدخال المرتبط باسم مضيف الخادم البعيد أو عنوان IP.
  5. انقر بزر الماوس الأيمن على الإدخال وحدد حذف .
  6. أعد الاتصال بالخادم في PuTTY، وسيطالبك بقبول المفتاح الجديد.

لنظام التشغيل Windows (باستخدام Git Bash):

  1. افتح جيت باش .
  2. قم بتشغيل الأمر التالي:
     ssh-keygen -R <hostname>
  3. سيطالبك SSH بقبول المفتاح الجديد في المرة التالية التي تتصل فيها.

الحل 2: مسح ملف known_hosts بالكامل (Windows وMac وUbuntu)

لنظام التشغيل Mac وUbuntu (Linux):

  1. افتح المحطة.
  2. قم بتشغيل الأمر التالي لإزالة ملف known_hosts بالكامل:
     rm ~/.ssh/known_hosts
  3. أعد الاتصال بالخادم البعيد باستخدام SSH:
     ssh <username>@<hostname>

لنظام التشغيل Windows (باستخدام PuTTY):

  1. افتح المعجون .
  2. اضغط على Windows + R ، واكتب regedit ، ثم اضغط على Enter لفتح محرر التسجيل .
  3. انتقل إلى:
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  4. انقر بزر الماوس الأيمن على المجلد SshHostKeys واختر حذف . سيؤدي هذا إلى إزالة جميع مفاتيح المضيف المخزنة.
  5. أعد الاتصال بالخادم باستخدام PuTTY، وسيُطلب منك قبول مفتاح المضيف الجديد.

لنظام التشغيل Windows (باستخدام Git Bash):

  1. افتح جيت باش .
  2. قم بإزالة ملف known_hosts عن طريق تشغيل:
     rm ~/.ssh/known_hosts
  3. عند إعادة الاتصال بالخادم باستخدام SSH، سيُطلب منك قبول مفتاح المضيف الجديد.

الحل 3: تجاهل فحص مفتاح المضيف مؤقتًا (Windows وMac وUbuntu)

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

لنظام التشغيل Mac وUbuntu (Linux):

 ssh -o StrictHostKeyChecking=no <username>@<hostname>

لنظام التشغيل Windows (باستخدام Git Bash):

 ssh -o StrictHostKeyChecking=no <username>@<hostname>

لنظام التشغيل Windows (باستخدام PuTTY):

  1. افتح المعجون .
  2. انتقل إلى الاتصال > SSH > مفاتيح المضيف .
  3. قم بتعطيل التحقق من مفتاح المضيف عن طريق تحديد القبول دائمًا .
  4. أعد الاتصال بالخادم دون التحقق من مفتاح المضيف.

الحل 4: إضافة مفتاح المضيف الجديد يدويًا (Windows وMac وUbuntu)

لنظام التشغيل Mac وUbuntu (Linux):

 ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts

لنظام التشغيل Windows (باستخدام Git Bash):

 ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts

لنظام التشغيل Windows (باستخدام PuTTY):

لسوء الحظ، لا يوجد لدى PuTTY معادل مباشر لـ ssh-keyscan . لإضافة مفتاح المضيف يدويًا، ستحتاج إلى الاتصال بالخادم والسماح لـ PuTTY بمطالبتك بمفتاح المضيف الجديد.

الحل 5: التحقق من تغييرات عنوان DNS أو IP (Windows وMac وUbuntu)

لنظام التشغيل Mac وUbuntu (Linux):

 nslookup <hostname>
 dig <hostname>

لنظام التشغيل Windows (باستخدام Git Bash):

 nslookup <hostname>
 dig <hostname>

لنظام التشغيل Windows (باستخدام PuTTY):

  1. افتح موجه الأوامر أو PowerShell .
  2. استخدم الأمر التالي للتحقق من عنوان DNS أو IP:
     nslookup <hostname>
  3. قارن عنوان IP الموجود في الإخراج بما يظهره PuTTY في السجل.
  4. إذا تغير عنوان IP، فاحذف مفتاح المضيف القديم من سجل PuTTY بالانتقال إلى:
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  5. أعد الاتصال عبر PuTTY، وسيطالبك بقبول المفتاح الجديد.

أفضل الممارسات لتجنب هذه المشكلة في المستقبل (Windows وMac وUbuntu)

  • استخدم عناوين IP الثابتة: قم بتكوين خوادمك باستخدام عناوين IP الثابتة لمنع التغييرات غير المتوقعة التي يمكن أن تؤدي إلى ظهور التحذير.
  • تنظيف أو تحديث known_hosts بانتظام: قم بمراجعة وتنظيف مفاتيح المضيف القديمة أو المتقادمة بشكل دوري.
  • فكر في استخدام شهادات SSH: استخدم شهادات SSH لإدارة مفاتيح المضيف القابلة للتطوير، مما يقلل من فرص ظهور هذا التحذير.
  • مراقبة تغييرات DNS أو IP: راقب التغييرات التي تطرأ على سجلات DNS أو عناوين IP وقم بتحديث known_hosts وفقًا لذلك.

خاتمة

"لقد تغير تعريف المضيف البعيد!" يعد التحذير ميزة أمان أساسية في SSH تمنع الوصول غير المصرح به عن طريق التحقق من هوية الخوادم البعيدة. على الرغم من أن الأمر قد يكون مثيرًا للقلق، إلا أنه من المهم اتخاذ الخطوات اللازمة للتحقق من هوية الخادم قبل متابعة أي تغييرات.

باستخدام الحلول الموضحة في هذه المقالة، يمكنك حل التحذير بأمان سواء كنت تستخدم نظام التشغيل Windows أو Mac أو Ubuntu . تذكر دائمًا التحقق من صحة الخادم أولاً، ثم اختر الحل الذي يناسب موقفك، سواء كان ذلك إزالة مفتاح المضيف القديم، أو مسح ملف known_hosts ، أو تجاوز التحقق مؤقتًا.

بالإضافة إلى ذلك، فإن اتباع أفضل الممارسات مثل استخدام عناوين IP الثابتة والتحديث المنتظم known_hosts والنظر في شهادات SSH يمكن أن يساعد في تقليل حدوث هذه المشكلة في المستقبل.