خطأ SSH: فشل تبادل التعريف، الاتصال مغلق
في كثير من الحالات، قد يكون خطأ `ssh_exchange_identification: Connection closed by remote host` ناتجًا عن مشكلات تتعلق بملفات التكوين `hosts.deny` و `hosts.allow`، إلا أن هناك أسبابًا أخرى محتملة للمشكلة. إذا كنت تقرأ هذا، فمن المحتمل أنك قد تحققت بالفعل من أن كلا الملفين لا يحظران عنوان IP الخاص بك من محاولة استخدام `ssh` على خادم بعيد.

بافتراض أن هذا هو الحال، فقد تكون المشكلة متعلقة بالتبعيات، أو تجزئة الذاكرة، أو حتى عدد مفرط من الجلسات القادمة من عملاء فرديين. الخبر السار هو أنه بمجرد معالجة المشكلة، لن يظهر لك الخطأ مرة أخرى.
الطريقة 1: إصلاح التبعيات المفقودة
إذا ظهر لك خطأ `ssh_exchange_identification: connection closed by remote host` فقط بعد تحديث `OpenSSL` أو `glibc`، فقد تكون المشكلة متعلقة بتبعية مفقودة. في هذه الحالة، قم بتشغيل الأمر sudo lsof -n | grep ssh | grep DEL من سطر الأوامر. سيعطيك هذا قائمة بالملفات المفتوحة، ثم ابحث فقط عن تلك التي تم حذفها مؤخرًا والمتعلقة بخدمة `ssh` (daemon).

إذا لم تحصل على أي نتائج، فلا يزال بإمكانك محاولة إعادة تشغيل الخدمة (daemon) أو النظام نفسه. ستحتاج إلى محاولة إعادة التشغيل إذا ظهرت لك عدة أخطاء، على الرغم من أنه يمكنك تجاهل الرسائل المتعلقة بـ `/run/user/1000/gvfs` بأمان، حيث إنها ناتجة عن مشكلة غير ذات صلة تتعلق بنظام ملفات افتراضي.
يمكنك أيضًا محاولة استخدام `apt-get` أو `pacman` أو `yum` لتحديث حزمك إذا كنت تشك في أن التبعيات تمثل مشكلة. إذا كنت تستخدم نظامًا يعتمد على `Debian` أو `Ubuntu`، فقد ترغب في تجربة sudo apt-get -f upgrade لمعرفة ما إذا كان ذلك يصلح أي حزم تالفة قد تكون قد واجهتها.
الطريقة 2: تصحيح تجزئة الذاكرة
إذا لم يساعد هذا، فقد تكون لديك مشكلة على جانب المضيف (host). المضيفون الذين يعملون داخل جهاز افتراضي (VM) لا يمتلكون دائمًا قسم مبادلة (swap partition)، مما قد يؤدي إلى تجزئة الذاكرة. قم بالوصول إلى المضيف بوسائل أخرى، ربما فعليًا إن أمكن، ثم أعد تشغيل أي خدمات تعاني من مشاكل. قد تكون `MySQL` و `Apache` و `nginx` وغيرها من هذه الخدمات هي السبب.
بينما قد لا يكون إعادة تشغيل المضيف (host) ممكنًا دائمًا، إلا أن هذا يمكن أن يصحح المشكلة وقد يكون فكرة جيدة إذا كنت تتناوب بين رسالة الخطأ هذه ورسالة أخرى تعيد عنوان IP. ضع في اعتبارك أنه إذا كان لديك أي نوع من الوصول إلى الخادم، فيمكنك تشغيل الأمر vmstat -s والحصول على بعض الإحصائيات المهمة حول كيفية استخدام الذاكرة حتى كمستخدم عادي في كثير من الحالات.

الطريقة الثالثة: التحقق من وجود نُسخ ssh إضافية
إذا لم يكن هذا هو السبب، فتحقق مما إذا كانت المضيفات تحاول الاتصال بالخادم. ربما تكون قد تجاوزت الحد الأقصى لعدد جلسات ssh دون علمك. قم بإنهاء الجلسات القديمة ثم حاول إعادة الاتصال. إحدى الطرق السهلة للقيام بذلك هي تشغيل أمر who لمعرفة عمليات المستخدمين المسجلين. يجب أن ترى مستخدمًا واحدًا أو اثنين فقط مسجلين. إذا كان هناك عدد من الجلسات المتوازية، فقم بإنهاء عمليات المستخدمين وحاول تسجيل الدخول مرة أخرى.
قد يحدث هذا إذا لم يتمكن sshd من مواكبة نص برمجي يبدأ العديد من جلسات ssh المختلفة في حلقة تكرارية. إذا حدث هذا لك من قبل، فأضف الأمر sleep 0.3 إلى الحلقة التكرارية لمنح خفي sshd وقتًا للمواكبة.
الطريقة الرابعة: العثور على حد اتصال sshd
مشاكل الاتصال مثل هذه منتشرة بشكل خاص عند محاولة استخدام ssh للوصول إلى جهاز توجيه (راوتر) أو نوع آخر من المحولات المدمجة، نظرًا لأن الحد الأقصى الافتراضي لعدد الاتصالات صغير جدًا. بينما لا ترغب في السماح لنفسك بتحميل زائد على الخادم، يمكنك إلقاء نظرة على الإعداد الافتراضي.
حاول تشغيل
على الخادم لمعرفة عدد الاتصالات التي يمكن لـ sshd التعامل معها. في معظم الحالات، يجب أن يكون الإعداد الافتراضي للنظام هو 10 اتصالات متزامنة، وهو ما يكفي لمعظم هياكل الخوادم التي يحتاج غالبية المستخدمين إلى استخدام ssh عليها بانتظام.
Comments are closed.