كيفية استخدام SSH للاتصال بخادم بعيد في Linux

المقدمة

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

Secure Shell (SSH) للأجهزة التي تعمل بنظام Linux
بروتوكول سطح المكتب البعيد (RDP) للأجهزة التي تعمل بنظام Windows
يستخدم البروتوكولان تطبيقات العميل والخادم لإنشاء اتصال عن بُعد. تتيح لك هذه الأدوات الوصول إلى أجهزة الكمبيوتر الأخرى وإدارتها عن بُعد ، ونقل الملفات ، والقيام فعليًا بأي شيء يمكنك القيام به أثناء الجلوس فعليًا أمام الجهاز.
المتطلبات الأساسية
قبل أن تتمكن من إنشاء بروتوكول آمن لسطح المكتب البعيد باستخدام جهاز بعيد ، هناك بعض المتطلبات الأساسية التي يجب تلبيتها:

يجب أن يكون الكمبيوتر البعيد قيد التشغيل في جميع الأوقات وأن يكون لديه اتصال بالشبكة.
يجب تثبيت تطبيقات العميل والخادم وتمكينها.
أنت بحاجة إلى عنوان IP أو اسم الجهاز البعيد الذي تريد الاتصال به.
يجب أن يكون لديك الأذونات اللازمة للوصول إلى الكمبيوتر البعيد.
تحتاج إعدادات جدار الحماية إلى السماح بالاتصال عن بُعد.
ما هو SSH؟
يُشار إلى Secure Shell أحيانًا باسم Secure Socket Shell ، وهو بروتوكول يتيح لك الاتصال بأمان بجهاز كمبيوتر بعيد أو بخادم باستخدام واجهة تستند إلى نص.

عند إنشاء اتصال SSH آمن ، ستبدأ جلسة shell ، وستكون قادرًا على التعامل مع الخادم عن طريق كتابة أوامر داخل العميل على جهاز الكمبيوتر المحلي الخاص بك.

كيف يعمل SSH؟

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

على جانب الخادم ، هناك مكون يسمى خدمة SSH التي تستمع باستمرار إلى منفذ TCP / IP محدد لطلبات اتصال العميل المحتملة. بمجرد أن يبدأ العميل الاتصال ، سوف يستجيب برنامج SSH للبرنامج وإصدارات البروتوكول التي يدعمها وسيتبادل الاثنان بيانات التعريف الخاصة بهما. إذا كانت بيانات الاعتماد المقدمة صحيحة ، يقوم SSH بإنشاء جلسة جديدة للبيئة المناسبة.

إصدار بروتوكول SSH الافتراضي لخادم SSH واتصالات عميل SSH هو الإصدار 2.

كيفية تفعيل اتصال SSH

نظرًا لأن إنشاء اتصال SSH يتطلب كلاً من العميل ومكون الخادم ، فأنت بحاجة إلى التأكد من تثبيتهما على الجهاز المحلي والجهاز البعيد ، على التوالي. أداة SSH مفتوحة المصدر – تُستخدم على نطاق واسع لتوزيعات Linux – هي OpenSSH. تثبيت OpenSSH سهل نسبيًا. يتطلب الوصول إلى المحطة الطرفية على الخادم والكمبيوتر الذي تستخدمه للاتصال. لاحظ أن Ubuntu ليس به خادم SSH مثبتًا بشكل افتراضي.

كيفية تثبيت عميل OpenSSH

قبل متابعة تثبيت عميل SSH ، تأكد من عدم تثبيته بالفعل. العديد من توزيعات Linux لديها بالفعل عميل SSH. بالنسبة لأجهزة Windows ، يمكنك تثبيت PuTTY أو أي عميل آخر من اختيارك للوصول إلى الخادم.
للتحقق مما إذا كان العميل متاحًا على نظامك المستند إلى Linux ، ستحتاج إلى:

قم بتحميل محطة SSH. يمكنك إما البحث عن “محطة" أو الضغط على CTRL + ALT + T على لوحة المفاتيح.
اكتب ssh واضغط على Enter في الجهاز.
إذا تم تثبيت العميل ، فستتلقى ردًا يبدو كالتالي:

هذا يعني أنك جاهز للاتصال عن بعد بجهاز فعلي أو افتراضي. خلاف ذلك ، سيكون عليك تثبيت عميل OpenSSH:

قم بتشغيل الأمر التالي لتثبيت عميل OpenSSH على جهاز الكمبيوتر الخاص بك: sudo apt-get install openssh-client
اكتب كلمة مرور المستخدم المتميز عندما يُطلب منك ذلك.
اضغط على Enter لإكمال التثبيت.
أنت الآن قادر على SSH في أي جهاز مع تطبيق من جانب الخادم عليه ، بشرط أن يكون لديك الامتيازات اللازمة للوصول ، بالإضافة إلى اسم المضيف أو عنوان IP.

كيفية تثبيت خادم OpenSSH

لقبول اتصالات SSH ، يحتاج الجهاز إلى أن يكون لديه جزء من جانب الخادم من مجموعة أدوات برنامج SSH.

إذا كنت تريد أولاً التحقق مما إذا كان خادم OpenSSH متاحًا على نظام Ubuntu للكمبيوتر البعيد الذي يحتاج إلى قبول اتصالات SSH ، فيمكنك محاولة الاتصال بالمضيف المحلي:

افتح المحطة على جهاز الخادم. يمكنك إما البحث عن “محطة" أو الضغط على CTRL + ALT + T على لوحة المفاتيح.
اكتب ssh localhost واضغط على enter.
بالنسبة للأنظمة التي لم يتم تثبيت خادم SSH عليها ، ستبدو الاستجابة مشابهة لما يلي:
username @ host: ~ $ ssh localhost
ssh: الاتصال بمنفذ المضيف المحلي 22: رفض الاتصال username @ host: ~ $
إذا كان الأمر كذلك أعلاه ، فستحتاج إلى تثبيت خادم OpenSSH. اترك المحطة مفتوحة و:

قم بتشغيل الأمر التالي لتثبيت خادم SSH:
sudo apt-get install openssh-server ii.
اكتب كلمة مرور المستخدم المتميز عندما يُطلب منك ذلك.
أدخل و Y للسماح باستمرار التثبيت بعد مطالبة مساحة القرص.
سيتم تثبيت ملفات الدعم المطلوبة ، وبعد ذلك يمكنك التحقق مما إذا كان خادم SSH يعمل على الجهاز عن طريق كتابة هذا الأمر:

حالة خدمة sudo ssh
يجب أن تبدو الاستجابة في المحطة مشابهة لهذا إذا كانت خدمة SSH تعمل الآن بشكل صحيح:

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

username @ host: ~ $ ssh localhost

لا يمكن إثبات أصالة المضيف “localhost (127.0.0.1)". بصمة مفتاح ECDSA هي SHA256:
9jqmhko9Yo1EQAS1QeNy9xKceHF
G5F8W6kp7EX9U3Rs.
هل أنت متأكد أنك تريد متابعة الاتصال (نعم / لا)؟ نعم
تحذير: تمت إضافة “localhost" (ECDSA) بشكل دائم إلى قائمة المضيفين المعروفين.

اسم المستخدم @ المضيف: ~ $
أدخل نعم أو ص للمتابعة.

تهانينا! لقد قمت بإعداد الخادم الخاص بك لقبول طلبات اتصال SSH من خادم آخر
كمبيوتر باستخدام عميل SSH.

تلميح

يمكنك الآن تعديل ملف تكوين SSH daemon ، على سبيل المثال ، يمكنك تغيير المنفذ الافتراضي لاتصالات SSH. في موجه الأوامر ، قم بتشغيل هذا الأمر:

sudo nano / etc / ssh / sshd_config
سيتم فتح ملف التكوين في المحرر الذي تختاره. في هذه الحالة ، استخدمنا نانو.

إذا كنت بحاجة إلى تثبيت Nano ، فقم بتشغيل هذا الأمر:

sudo apt-get install nano
يرجى ملاحظة أنك تحتاج إلى إعادة تشغيل خدمة SSH في كل مرة تقوم فيها بإجراء أي تغييرات على ملف sshd_config عن طريق تشغيل هذا الأمر:

إعادة تشغيل sudo service ssh
كيفية الاتصال عبر SSH
الآن بعد أن تم تثبيت عميل وخادم OpenSSH على كل جهاز تحتاجه ، يمكنك إنشاء اتصال آمن عن بُعد بخوادمك. لنفعل ذلك:

افتح محطة SSH على جهازك وقم بتشغيل الأمر التالي:
ssh your_username @ host_ip_address
إذا كان اسم المستخدم الموجود على جهازك المحلي يطابق الاسم الموجود على الخادم الذي تحاول الاتصال به ، فيمكنك فقط كتابة:
ssh host_ip_address
واضغط على Enter.
اكتب كلمة المرور الخاصة بك واضغط على Enter. لاحظ أنك لن تحصل على أي ملاحظات على الشاشة أثناء الكتابة. إذا كنت تلصق كلمة المرور الخاصة بك ، فتأكد من تخزينها بأمان وليس في ملف نصي.
عندما تتصل بخادم لأول مرة ، سيسألك إذا كنت تريد متابعة الاتصال. فقط اكتب نعم واضغط على Enter. تظهر هذه الرسالة فقط هذه المرة نظرًا لعدم تحديد الخادم البعيد على جهازك المحلي.
تمت الآن إضافة بصمة مفتاح ECDSA وأنت متصل بالخادم البعيد.
إذا كان الكمبيوتر الذي تحاول الاتصال به عن بُعد موجودًا على نفس الشبكة ، فمن الأفضل استخدام عنوان IP الخاص بدلاً من عنوان IP العام. خلاف ذلك ، سيكون عليك استخدام عنوان IP العام فقط. بالإضافة إلى ذلك ، تأكد من أنك تعرف منفذ TCP الصحيح الذي يستمع OpenSSH إليه لطلبات الاتصال وأن إعدادات إعادة توجيه المنفذ صحيحة. المنفذ الافتراضي هو 22 إذا لم يغير أحد التكوين في ملف sshd_config. يمكنك أيضًا إلحاق رقم المنفذ بعد عنوان IP للمضيف.

فيما يلي مثال لطلب الاتصال باستخدام عميل OpenSSH. سنحدد رقم المنفذ أيضًا:

username @ machine: ~ $ ssh [email protected] –p7654 [email protected] كلمة المرور:

لا يمكن إثبات أصالة المضيف “185.52.53.222 (185.52.53.222)". بصمة مفتاح ECDSA هي SHA256:
9lyrpzo5Yo1EQAS2QeHy9xK
ceHFH8F8W6kp7EX2O3Ps.
هل أنت متأكد أنك تريد متابعة الاتصال (نعم / لا)؟ نعم
تحذير: تمت إضافة “185.52.53.222" (ECDSA) بشكل دائم إلى قائمة الأجهزة المضيفة المعروفة.

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

خطوات أخرى SSH
الآن بعد أن أصبحت قادرًا على إنشاء اتصال بالخادم الخاص بك باستخدام SSH ، نوصي بشدة ببعض الخطوات الإضافية لتحسين أمان SSH. عندما تترك الإعداد بالقيم الافتراضية ، فمن المرجح أن يتم اختراقه ويمكن أن يصبح خادمك بسهولة هدفًا للهجمات النصية.

تتضمن بعض الاقتراحات الخاصة بتقوية SSH عن طريق تحرير ملف تكوين sshd ما يلي:

قم بتغيير منفذ TCP الافتراضي حيث يستمع برنامج SSH daemon. قم بتغييره من 22 إلى رقم أعلى من ذلك بكثير ، على سبيل المثال 24596. تأكد من عدم استخدام رقم منفذ يسهل تخمينه ، مثل 222 أو 2222 أو 22222.
استخدم أزواج مفاتيح SSH للمصادقة لتسجيل الدخول بدون كلمة مرور عبر SSH. كلاهما أكثر أمانًا ويسمحان أيضًا بتسجيل الدخول دون الحاجة إلى استخدام كلمة المرور الخاصة بك (وهي أسرع وأكثر ملاءمة).
تعطيل عمليات تسجيل الدخول المستندة إلى كلمة المرور على الخادم الخاص بك. إذا تم اختراق كلمة المرور الخاصة بك ، فسيؤدي ذلك إلى القضاء على إمكانية استخدامها لتسجيل الدخول إلى الخوادم الخاصة بك. قبل تعطيل خيار تسجيل الدخول باستخدام كلمات المرور ، من المهم التأكد من أن المصادقة باستخدام أزواج المفاتيح تعمل بشكل صحيح.
قم بتعطيل وصول الجذر إلى الخادم الخاص بك واستخدم حسابًا عاديًا باستخدام الأمر su للتبديل إلى مستخدم جذر.
يمكنك أيضًا استخدام أغلفة TCP لتقييد الوصول إلى بعض عناوين IP أو أسماء المضيفين. قم بتكوين المضيف الذي يمكنه الاتصال باستخدام أغلفة TCP عن طريق تحرير ملفات /etc/hosts.allow و etc / hosts.deny.

لاحظ أن المضيفات المسموح بها تحل محل المضيفات المرفوضة. على سبيل المثال ، للسماح بوصول SSH إلى مضيف واحد ، ستقوم أولاً برفض جميع المضيفين عن طريق إضافة هذين السطرين في etc / hosts.deny:

sshd: الكل
الكل: الكل

ثم ، في etc / hosts.allow ، أضف سطرًا بالمضيفات المسموح بها لخدمة SSH. يمكن أن يكون عنوان IP واحدًا أو نطاق IP أو اسم مضيف: sshd: 10.10.0.5 ، LOCAL.

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

VNC عبر SSH
بالنسبة للمستخدمين الذين اعتادوا العمل في بيئة سطح مكتب رسومية باستخدام حوسبة الشبكة الافتراضية (VNC) ، من الممكن تشفير الاتصالات بالكامل باستخدام نفق SSH. من أجل نفق اتصالات VNC عبر SSH ، ستحتاج إلى تشغيل هذا الأمر في الجهاز الطرفي على جهاز Linux أو UNIX:

$ ssh -L 5901: localhost: 5901 -N -f -l username hostname_or_IP
هنا هو تفصيل الأمر أعلاه:

ssh: يؤدي هذا إلى تشغيل برنامج عميل SSH على جهازك المحلي ويتيح الاتصال الآمن بخادم SSH على كمبيوتر بعيد.
-L 5901: localhost: 5901: ينص على أن المنفذ المحلي للعميل على الجهاز المحلي سيتم إعادة توجيهه إلى المضيف والمنفذ المحددين للجهاز البعيد. في هذه الحالة ، يتم إعادة توجيه المنفذ المحلي 5901 على العميل المحلي إلى نفس منفذ الخادم البعيد المحدد.
-N: يوجه لإعادة توجيه المنافذ فقط ، وليس تنفيذ أمر بعيد.
-f: يرسل SSH إلى الخلفية بعد توفير كلمة المرور ، قبل تنفيذ الأمر مباشرة. بعد ذلك ، يمكنك استخدام الجهاز الطرفي بحرية لكتابة الأوامر على الجهاز المحلي.
-l اسم المستخدم: سيُستخدم اسم المستخدم الذي أدخلته هنا لتسجيل الدخول إلى الخادم البعيد الذي حددته.
hostname_or_IP: هذا هو النظام البعيد مع خادم VNC. مثال على عنوان IP سيكون 172.16.0.5 ومثال اسم المضيف سيكون myserver.somedomain.com.
يمكنك أيضًا الاتصال بخادم بعيد عبر نفق SSH من جهاز يعمل بنظام Windows باستخدام PuTTY. في نافذة تكوين PuTTY:

انتقل إلى الاتصال -> SSH -> الأنفاق
في حقل منفذ المصدر ، اكتب 5901
في حقل الوجهة ، اكتب المضيف المحلي: 5901

img
ترتيب Putty

شكرا جزيلا

  • Share:
Send a Message