إليك ما يجب فعله عندما تصبح اتصالات SSH على نظام التشغيل Linux غير مستجيبة ولا تعمل ضغطات المفاتيح.
ربما كنت تكتب في جلسة SSH عن بعد، وفجأة، لا يحدث شيء. يبدو أن النظام لا يستجيب لضغطات المفاتيح. ماذا تفعل؟
إليك سبب حدوث ذلك، وكيفية إنهاء جلسة SSH غير المستجيبة، ولماذا قد ترغب في التبديل إلى Mosh.
ما الذي يسبب تجميد جلسات SSH؟
السبب الرئيسي لتجميد جلسات SSH هو انقطاع الاتصال بالشبكة. يمكن أن تنخفض إشارات Wi-Fi، أو قد تترك جهاز الكمبيوتر الخاص بك في وضع السكون. هذا هو الأكثر شيوعا مع أجهزة الكمبيوتر المحمولة. قد تغلق غطاء الكمبيوتر المحمول بينما تنسى أنك مازلت مسجلاً الدخول عبر SSH.
تم تصميم SSH في الأصل في عصر سبق أن استخدم فيه الناس أجهزة الكمبيوتر المحمولة بشكل روتيني. يعمل SSH بشكل أفضل عبر الشبكات السلكية.
1. إنهاء مع تسلسل الهروب
إذا تجمدت جلسة SSH الخاصة بك، فحاول استخدام تسلسل الهروب. يتيح لك تسلسل الهروب إرسال إشارات إلى عميل SSH بدلاً من الجهاز البعيد. تُستهل تسلسلات الهروب بحرف هروب. بشكل افتراضي على عميل OpenSSH، يكون التلدة (~) شخصية.
لإنهاء عميل SSH، يمكنك الضغط على مفتاح التلدة ثم على فترة (.) مفتاح.
يمكنك أيضًا تغيير حرف الهروب إذا كنت تريد ذلك. يمكنك تحديد حرف هروب جديد باستخدام الملف -ه الخيار في سطر الأوامر. يمكنك أيضًا تغييره بشكل دائم عن طريق ضبط EscapeChar الخيار في الخاص بك .سش/التكوين الملف في الدليل الرئيسي الخاص بك على الجهاز المحلي.
2. باستخدام أمر القتل
إذا لم ينجح استخدام تسلسل الهروب، فيمكنك محاولة إيقاف عميل SSH. للعثور على معرف العملية (PID) لجلستك، قم بتوجيه الأمر ps من خلال grep:
ps aux | grep ssh
الوسيطة "aux" لـ ps تعني "سرد كل عملية على النظام، بغض النظر عمن تنتمي إليها أو ما إذا كان لديها محطة التحكم أم لا."
إذا كانت لديك جلسات متعددة، فيمكنك اختيار الجلسة المجمدة لأن القائمة ستعرض اسم المستخدم والعنوان على الجهاز البعيد الذي تم تسجيل الدخول إلى جلسات SSH فيه. بمجرد العثور على معرف PID الخاص بجلستك، يمكنك إنهاؤها باستخدام أمر القتل:
kill [PID]
للحصول على اتصالات SSH أفضل، استخدم Mosh!
أفضل طريقة لتجنب جلسات SSH المجمدة المزعجة هي استخدامها مش. إذا انقطع الاتصال، فسيسمح لك Mosh بالبقاء على اتصال. سيتم إرسال أي رسائل عند إعادة الاتصال. كما أنه يعمل عند وضع جهازك في وضع السكون.
يمكنك أيضًا استخدام معدد الإرسال الطرفي مثل GNU Screen أو tmux لاستئناف جلسة SSH الخاصة بك بعد أي انقطاع، ولكن يعتبر Mosh وtmux أكثر قوة عند استخدامهما معًا.
لتثبيت Mosh على Debian وUbuntu:
sudo apt install mosh
وعلى آرتش لينكس:
sudo pacman -S mosh
في توزيعات عائلة Red Hat:
sudo dnf install mosh
الآن يمكنك التخلص من جلسات SSH العالقة
يمكن أن تكون جلسات SSH غير المستجيبة محبطة، ولكن يمكنك التخلص منها باستخدام تسلسل الهروب أو أمر القتل. يعد Mosh بديلاً أفضل من شأنه أن يبقي اتصالك حيًا من خلال انقطاع الاتصال ونوم النظام.