SSH هو بروتوكول شبكة يسمح لك بالوصول الآمن إلى نظام بعيد وإدارته عبر الشبكة. أثناء الاتصال بجهاز بعيد عبر SSH ، ربما واجهت خطأ “تم رفض الاتصال”. قد يكون مواجهة هذه المشكلة مُحبطًا خاصةً إذا كنت مسؤولاً عن النظام ويجب عليك أداء بعض المهام على النظام البعيد بشكل عاجل.
دعونا نلقي نظرة على بعض الأسباب المُحتملة لعرض الخطأ “تم رفض الاتصال” عبر SSH وطرق حله. تحقق من الدليل الكامل لكيفية إعداد SSH على Linux واختبار التكوين الخاص بك.
روابط سريعة
1. تحقق من تثبيت خادم SSH
أحد الأسباب المُحتملة لخطأ “تم رفض الاتصال” هو أنَّ الجهاز البعيد لا يقوم بتشغيل خادم SSH. بدون خادم SSH ، لن يقبل الجهاز اتصالات SSH الواردة ، ولن تتمكن من الوصول إليه عن بُعد.
لذا فإنَّ الخطوة الأولى في استكشاف الأخطاء وإصلاحها هي التحقق مما إذا كان خادم SSH مُثبتًا على الجهاز البعيد بالفعل. استخدم الأمر التالي للتحقق من تثبيت خادم SSH:
على التوزيعات المُستندة إلى Debian:
dpkg — list | grep ssh
على التوزيعات المُستندة إلى RHEL:
yum list installed | grep ssh
في openSUSE:
zypper search -i | grep ssh
على التوزيعات المُستندة إلى Arch:
pacman -Q | grep ssh
إذا تم تثبيت خادم SSH على الجهاز البعيد ، فسترى أنه مُدرج في الإخراج. خلاف ذلك ، يجب عليك تثبيت خادم OpenSSH على الجهاز البعيد الذي تُريد الوصول إليه عبر SSH. يُعتبر OpenSSH إصدار مفتوح المصدر من أدوات SSH للوصول عن بُعد والتحكم في الأنظمة.
لتثبيت خادم OpenSSH ، استخدم الأوامر التالية:
على التوزيعات المُستندة إلى Debian:
sudo apt install openssh-server
على التوزيعات المُستندة إلى RHEL:
sudo yum install openssh-server
في openSUSE:
sudo zypper install openssh
على التوزيعات المُستندة إلى Arch:
pacman -S openssh
تحقق من كيفية التحكم عن بُعد في Linux من Windows.
2. تحقق من حالة خدمة SSH
سبب آخر لظهور خطأ “ تم رفض الاتصال” يُمكن أن يكون أنَّ خدمة SSH مُعطلة أو لا تعمل على الجهاز البعيد. بمجرد التأكد من تثبيت خادم SSH ، فإنَّ الشيء التالي الذي تحتاج إلى التحقق منه هو حالة الخادم.
sudo systemctl start sshd
إذا كانت الخدمة قيد التشغيل ، فسيُشير الإخراج إلى أنها نشطة (قيد التشغيل). خلاف ذلك ، سترى شيئًا مثل غير نشط (ميت).
إذا لم يكن خادم SSH قيد التشغيل ، فيُمكنك بدء تشغيله يدويًا باستخدام الأمر التالي:
sudo systemctl enable sshd
يُمكنك أيضًا تمكين الخدمة للبدء تلقائيًا عند التمهيد باستخدام:
sudo netstat -plntu | grep ssh
3. تحقق من منفذ SSH
افتراضيًا ، يعمل خادم SSH على المنفذ 22. ومع ذلك ، يُمكن تغيير المنفذ الافتراضي. لذلك ، إذا تلقيت خطأ “تم رفض الاتصال” في SSH ، فقد يكون ذلك بسبب محاولتك الاتصال بخادم SSH على المنفذ الافتراضي 22 أثناء تشغيله على منفذ مُختلف.
يُمكنك استخدام الأمر netstat مع grep للعثور على المنفذ الذي يستمع إليه خادم SSH:
sudo netstat -plntu | grep ssh
يُمكنك أيضًا العثور على منفذ SSH من ملف sshd_config باستخدام الأمر التالي:
grep port /etc/ssh/sshd_config
بعد تحديد منفذ SSH الصحيح ، حاول الاتصال بنظامك البعيد باستخدام هذا المنفذ المُحدد.
4. تحقق من جدار حماية النظام
تحدث معظم مُشكلات الاتصال بسبب جدار الحماية الخاص بجهازك الذي يحظر بعض المنافذ أو الخدمات. إذا كان الجهاز البعيد يحتوي على خادم SSH مُثبتًا وقيد التشغيل ، فإنَّ الخطوة التالية هي التحقق من إعدادات جدار الحماية.
لمعرفة ما إذا كان جدار الحماية يحظر الاتصال ، قم بتعطيل جدار الحماية مُؤقتًا باستخدام الأوامر التالية:
على توزيعات Debian و Linux المُستندة إلى Arch:
sudo ufw disable
في التوزيعات المُستندة إلى RHEL و openSUSE:
sudo systemctl disable firewalld
إذا لم يظهر الخطأ بعد تعطيل جدار الحماية ، فهذا يعني أنَّ جدار الحماية كان يحظر الاتصال. في هذه الحالة ، أعد تمكين جدار الحماية وأضف قاعدة السماح لـ SSH.
في توزيعات Debian و Linux التي تستند إلى Arch ، استخدم الأمر التالي للسماح لـ SSH في جدار حماية UFW:
sudo ufw allow ssh
بدلاً من ذلك ، يُمكنك أيضًا السماح لـ SSH برقم المنفذ في جدار الحماية. لنفترض أنَّ خادم SSH يستخدم المنفذ 5555 ، ثم يُمكنك استخدام الأمر التالي للسماح به في جدار الحماية:
sudo ufw allow 5555
للتحقق من إضافة القاعدة بنجاح ، تحقق من حالة UFW:
sudo ufw status
في التوزيعات المُستندة إلى RHEL و openSUSE ، استخدم الأمر التالي للسماح لـ SSH في جدار الحماية:
sudo firewall-cmd — permanent — add-service=ssh
للسماح لـ SSH برقم المنفذ ، استخدم الأمر التالي:
sudo firewall-cmd — permanent — add-port={port}/tcp
بالنسبة لخادم SSH الذي يعمل على المنفذ 4444 ، سيكون الأمر كما يلي:
sudo firewall-cmd — permanent — add-port=4444/tcp
للتحقق من الإضافة الناجحة للقاعدة في جدار الحماية ، قم بتنفيذ الأمر التالي:
sudo firewall-cmd — list-all
5. حل تعارضات عنوان IP
هناك أيضًا فرصة لحدوث خطأ “تم رفض الاتصال” عبر SSH بسبب تعارض عنوان IP لخادم SSH مع عنوان IP لنظام آخر في الشبكة. يحدث هذا عندما يدََّّعي نظامان على الشبكة أن لهما نفس عنوان IP ، مما يؤدي إلى تعارض في IP.
لتأكيد ما إذا كان هناك تعارض في IP في شبكتك ، استخدم أداة arp-scan كما يلي:
arp-scan [network-id]
إذا كان هناك تعارض في IP ، فسترى عنوان IP المُكرر في الإخراج. لقطة الشاشة أدناه هي مثال على تعارض IP في الشبكة:
لتجنب تعارضات IP ، تأكد من عدم وجود عناوين IP ثابتة للأجهزة تتداخل مع عناوين تجمع DHCP. تحقق من ما هو بروتوكول DHCP ، وما الذي يمثله ، وهل يجب استخدامه؟
نصيحة إضافية: تشغيل SSH في وضع Verbose
عندما تواجه خطأ SSH ، حاول تشغيل الأمر ssh في وضع Verbose لتتبع المشكلة. لتشغيل SSH في وضع Verbose ، استخدم الأمر ssh مع الخيار -vvv كما يلي:
ssh -vvv username@ip_address
في وضع Verbose ، سترى رسائل تصحيح الأخطاء في كل خطوة من خطوات الاتصال والتي ستُساعدك على فهم مكان المشكلة. تحقق من أفضل تطبيقات SSH Client لنظام iOS لإدارة الخوادم عن بُعد.
استكشاف خطأ “تم رفض الاتصال” عبر SSH وإصلاحه على Linux
من خلال تحديد الأسباب المُحتملة لخطأ اتصال SSH وتنفيذ الحلول المُقترحة ، ستتمكن من استكشاف الأخطاء وإصلاحها وحل خطأ “تم رفض الاتصال” عبر SSH. بالإضافة إلى هذه الخطوات ، تأكد من اتصالك بعنوان IP الصحيح واستخدام بيانات اعتماد تسجيل الدخول الصحيحة.
لجعل اتصالك عن بُعد أكثر أمانًا ، يمكنك إعداد مصادقة ثنائية لـ SSH على نظام Linux. يُمكنك الإطلاع الآن على كيفية الوصول عن بُعد إلى سطح المكتب Ubuntu من Windows.