لينكس وويندوز كانتا في السابق عدوين مميتين ولكن في الوقت الحالي، يبدو أنهما يتفاهمان بشكل أفضل بكثير. في الواقع، يمكنك الآن استخدام بروتوكول SSH بشكل أصلي في نظام ويندوز: سواء كعميل أو كخادم. ماذا تفعل عندما تكون مسؤولًا عن ويندوز ولكنك بحاجة أيضًا لإدارة أجهزة لينكس؟ تعتاد على استخدام أمر (Secure Shell) SSH في لينكس!
هذا هو الجزء الرابع في سلسلة مقالات المدونة بعنوان “رجل ويندوز في عالم لينكس”. إذا كنت ترغب في معرفة المزيد حول مفاهيم لينكس الشائعة، تأكد من متابعة الجزء الأول، الجزء الثاني، و الجزء الثالث.
في هذا المنشور، ستتعلم كل شيء عن كيفية تمكين بروتوكول SSH في لينكس، وكيفية إعداد عميل SSH في ويندوز الخاص بك للاتصال بخوادم لينكس عن بُعد.
ملاحظة: ستكون جميع الأمثلة تستخدم لينكس أوبن سوزي.
الابتعاد عن بيئة سطح المكتب
في الجزء الأول منشور في هذه السلسلة، كانت التعليمات توصي باستخدام بيئة سطح المكتب KDE. عندما كنت تقوم بإعداد أوبن سوزي، ربما رأيت خيارًا آخر مغرٍ؛ إصدار الخادم من أوبن سوزي.

إذا كنت قد قمت بتثبيت الإصدار للخادم من معظم توزيعات لينكس (بما في ذلك OpenSUSE)، فقد لاحظت النقص التام لسطح المكتب. إصدار الخادم من معظم التوزيعات الشهيرة (مثل OpenSUSE، وأيضًا Ubuntu Server و CentOS) شبيه بـ نواة ويندوز سيرفر: لا يوجد سطح مكتب بالمعنى المعتاد.
لفهم سبب عدم شهرة السطح المكتبي في ثقافة لينكس، تحتاج إلى فهم واجهة سطر الأوامر وبروتوكول SSH.
SSH: المعيار الذهبي لإدارة عن بُعد
SSH، مثل العديد من بروتوكولات إدارة النظام عن بُعد الأخرى، هو نظام قائم على العميل والخادم. يقوم العميل بالاتصال عن بُعد عبر الشبكة بخادم ويسمح لك بتشغيل الأوامر (أو حتى نقل الملفات). SSH هو المعيار الفعلي عندما يتعلق الأمر بإدارة لينكس عن بُعد.
نظرًا لأن SSH موجود منذ وقت طويل ومضمن بعمق في النظام البيئي لينكس، تهيمن الأدوات الإدارية لواجهة سطر الأوامر على بيئة خوادم لينكس. معظم توزيعات خوادم لينكس ليس لديها واجهة رسومية.
استخدام أوامر SSH في لينكس
كفى حديثًا. دعنا نرى ما يمكن أن يفعله SSH بتمكينه أولاً في لينكس OpenSUSE. للقيام بذلك، استخدم مدير الحزم YaST. لتمكين SSH باستخدام YaST في OpenSUSE:
- انقر فوق قائمة البدء، اكتب terminal واختر Konsole بشرط أن تكون قد قمت بتثبيت مدير سطح المكتب KDE عند تثبيت OpenSUSE.
- في الطرفية، افتح YaST عبر تشغيل
sudo yast
. - مرة واحدة في YaST، انتقل إلى الأسفل إلى النظام، ثم انتقل بالسهم إلى مدير الخدمات واضغط على Enter للمتابعة.
- انتقل إلى الأسفل حتى تصل إلى sshd، واضغط على
alt+s
لبدء خدمة SSH. - اضغط على
alt+r
لتغيير وضع البدء من يدوي إلى عند التمهيد. سيضمن هذا بدء خدمة خادم SSH حتى بعد إعادة التشغيل. - اضغط على
alt+o
لقبول التغييرات وتطبيقها.
يمكنك رؤية هذه الخطوات في العمل أدناه.

السماح بـ SSH من خلال جدار الحماية
تأتي معظم توزيعات Linux مزودة بنوع من جدار الحماية لحمايتها كما يفعل Windows. يمكنك قراءة حول جدار حماية OpenSUSE هنا. للتأكد من أنه يمكنك الوصول إلى خدمة SSH عن بعد من Windows، يجب أن تسمح به من خلال جدار الحماية. للقيام بذلك:
- لا تزال في الطرفية، قم ببدء YaST مرة أخرى باستخدام
sudo yast
. - انتقل إلى الأسفل إلى الأمان والمستخدمين ثم انتقل بالسهم إلى جدار الحماية واضغط على Enter للمتابعة.
- انتقل إلى المناطق -> عامة وانتقل بالسهم إلى اللوحة الخدمات والمنافذ على اليمين.
- انتقل إلى الأسفل للعثور على
ssh
في الخدمات. - حدد
ssh
باستخدام مفتاح المسافة واضغط علىalt+d
لإضافة التحديد. - اضغط على
alt+a
لقبول التغييرات.

يمكنك رؤية جميع هذه الخطوات أعلاه ممثلة بصورة بصرية أدناه.
الاتصال بنظام Linux من Windows
من الحظ السعيد أن يكون لديك Windows 10 الذي يحتوي على عميل SSH مدمج. للاتصال بخادم Linux ، افتح نافذة الأوامر (cmd) أو وحدة التحكم PowerShell وحدد اسم المستخدم الذي تريد الاتصال به وعنوان IP أو اسم المضيف.
إذا كانت جميع الأمور على ما يرام ، يجب على عميل SSH أن يطلب منك قبول بصمة. البصمة هي معرف للتأكد من أن شخصًا ما لم يخترق عنوان IP المستهدف.
إذا كنت تستخدم Windows 7 ، يمكنك ما زلت الاتصال بخادم Linux الخاص بك عبر SSH. ستحتاج فقط إلى تنزيل عميل Microsoft SSH من هنا. هذا العميل هو نفس الذي يستخدمه Windows 10.
بمجرد كتابة yes
وإدخال كلمة المرور الخاصة بك ، ستكون متصلًا بخادمك! يمكنك الآن استخدام سطر الأوامر تمامًا كما لو كنا نفتح وحدة تحكم على الكمبيوتر نفسه.
لا تعرض SSH (المنفذ الافتراضي 22) على الإنترنت من خلال جهاز التوجيه الخاص بك. يتصفح الروبوت الإنترنت باستمرار بحثًا عن منافذ SSH المفتوحة. بمجرد أن يجد الروبوت منفذًا مفتوحًا ، سيبدأ في إرسال كلمات المرور محاولًا اختراقها بوحشية.
تمكين دعم الماوس في SSH مع Windows
أحد العيوب الكبيرة في استخدام عميل SSH الأصلي في Windows 10 (على الأقل في وقت كتابة هذا النص) هو عدم وجود دعم للماوس. وهذا يعني أنه لا يمكنك استخدام الماوس في مدير منتصف الليل كما تعلمت في مدونة سابقة.
لحسن الحظ، اعتبارًا من الإصدار الثامن من عميل OpenSSH لنظام Windows، يمكنك الحصول على دعم للماوس! دعونا نقوم بتثبيت هذا العميل.
- قم بتنزيل أحدث إصدار من OpenSSH-Win64 من هنا وقم بفك ضغط ملف الأرشيف الناتج. سيفترض البرنامج التعليمي أنك قمت بفك ضغطه إلى ~\Downloads\OpenSSH-Win64.
- افتح نافذة PowerShell وانتقل إلى المسار ~\Downloads\OpenSSH-Win64 باستخدام
cd ~\Downloads\OpenSSH-Win64
. - تحقق من إصدار عميل SSH عبر تشغيل
.\\ssh -V
. حسب كتابة هذا الدليل، يجب أن يكون الإصدار 8.1.0.0-p1. - قم بتشغيل SSH إلى خادم Linux الخاص بك باستخدام
.\ssh <user>@<ip>
. - بمجرد تسجيل الدخول، قم بفحص دعم الماوس عبر تشغيل
mc
لتشغيل مدير منتصف الليل للتأكد من أنك يمكنك استخدام الماوس.
يمكنك رؤية كل هذه الخطوات أعلاه ممثلة بصورة بصرية أدناه.
تجاوز العميل الافتراضي لـ SSH
إذا كنت ترغب في استخدام الإصدار الجديد بشكل دائم، يمكنك ذلك؛ ولكن يجب عليك تجاوز عميل SSH الافتراضي في Windows 10. يضمن ذلك استخدام الإصدار الأحدث (مع دعم الماوس) كلما قمت بتشغيل `ssh` في سطر الأوامر.
بافتراض أنك قمت بفك الضغط عن العميل ووضعته في مجلد ~\Downloads\OpenSSH-Win64
- قم بنقل مجلد OpenSSH-Win64 المفكوك منه إلى مجلد دائم بموقع اختيارك. سيستخدم هذا البرنامج التعليمي المسار C:\users\public\OpenSSH-Win64.
- انتقل إلى ابدأ ثم تشغيل واكتب sysdm.cpl، أو افتح النظام من لوحة التحكم.
- تحت علامة التبويب المتقدمة، انقر فوق متغيرات البيئة.
- تحت متغيرات النظام، انقر على Path.
- انقر على جديد لإضافة مسار جديد وقدم مسار المجلد إلى عميل SSH (C:\users\public\OpenSSH-Win64 في هذه الحالة).
- انقر الانتقال لأعلى حتى يكون فوق مجلد %SystemRoot%\system32. سيضمن ذلك أن Windows سيبحث هنا أولاً عند كتابة `ssh` في سطر الأوامر.
- افتح نافذة PowerShell وقم بتشغيل
ssh -V
. يجب أن ترى الإصدار يكون 8.1.0.0-p.
يتم تلخيص هذه الخطوات أدناه.

تفضيل مجلد على %SystemRoot%\system32 قد يشكل مخاطر أمنية. إذا كان شخص ما لديه وصول إلى جهاز الكمبيوتر الخاص بك، فيمكنه قرار إدراج فيروس في مجلد OpenSSH-Win64 وتسميته كأداة ويندوز مثل cd.exe.
يجب عليك تقييد مجلد OpenSSH-Win64 للقراءة فقط للمسؤولين فقط.
- انقر بزر الماوس الأيمن على مجلد OpenSSH-Win64 وانقر على الخصائص.
- تحت علامة التبويب الأمان، انقر على الزر المتقدمة.
- انقر على تعطيل الوراثة للسماح بأذونات مخصصة للمجلد ومنع المجلدات الأصلية من تجاوز أذونات المجلد OpenSSH-Win64.
- اختر إضافة، ابحث عن مجموعة المسؤولين وامنحهم حقوق كاملة.
- انقر على إضافة، ابحث عن مجموعة الجميع وامنحهم أذونات للقراءة فقط.
- حدد خانة الاختيار استبدال كل أذونات الكائنات الفرعية لنشر هذه الإعدادات على جميع الملفات في مجلد OpenSSH-Win64. انقر على تطبيق.
- قم الآن باختبار هذه الأذونات عن طريق إنشاء ملف جديد في مجلد OpenSSH-Win64. يجب أن تطلب ويندوز رمز المسؤول.
يمكنك رؤية جميع هذه الخطوات المذكورة أعلاه بشكل مرئي في الرسم التوضيحي أدناه.

إدارة الجلسات المنفصلة باستخدام Tmux
أه، ما ألم! أنت في منتصف تشغيل أمر طويل التنفيذ عبر SSH ويتم قطع الاتصال بالإنترنت الخاص بك. الآن ليس لديك فكرة عن حالة خادم Linux! هل انتهى من تلك الأمر؟ كيف تعيدها؟
الجلسات المفصولة هي مشكلة شرعية في بروتوكول SSH ولكن لديها حلاً سهلاً. تحتاج إلى مضاعف الطرفية (tmux).
يعني Tmux اختصار مضاعف الطرفية واسم البرنامج نفسه
Tmux هو مدير جلسة لبروتوكول SSH. يحتفظ بالجلسة إذا قُطع الاتصال ويحافظ على تشغيلها في الخلفية. يمكنك إعادة الاتصال بهذه الجلسة لاحقًا أو حتى إنشاء جلسات متعددة والتنقل بينها.
لإدارة الجلسات المفصولة باستخدام tmux:
- في نافذة الطرفية في نظام Linux ، قم بتنزيل وتثبيت أداة tmux عن طريق تشغيل الأمر
sudo zypper install -y tmux
كما هو موضح أدناه:
يمكنك استخدام YaST لتنزيل أداة tmux أيضًا.

معظم توزيعات Linux لديها مدير حزم سطر الأوامر مختلف. يستخدم OpenSUSE zypper. يستخدم Arch pacman. يستخدم Ubuntu apt. يستخدم Red Hat dnf و yum. لحسن الحظ، فإن بنية الجملة لهذه المديرين متشابهة إلى حد كبير عبر الألواح.
2. على كمبيوتر Windows الخاص بك، قم بفتح نافذة كونسول PowerShell وقم بالاتصال بخادم Linux الخاص بك عبر SSH. سيتم استخدام تعليمات البرنامج التعليمي اسم مستخدم homelab وعنوان IP للخادم Linux هو 192.168.134.169.
3. قم بفتح tmux عن طريق تشغيل tmux بمجرد الاتصال. يجب أن تحصل على شريط أخضر في الأسفل
4. قم بتشغيل أمر يخرج بعض النص. لا يهم ما هو. يتم استخدام هذا البرنامج التعليمي neofetch. يمكنك أيضًا تشغيل ls.
5. قم بفصل الجلسة عن طريق إغلاق PowerShell. يقوم هذا الإجراء بمحاكاة الانقطاع.
6. أعد الاتصال بخادم Linux الخاص بك مرة أخرى باستخدام SSH.
7. الآن أعد الانضمام إلى الجلسة القديمة عن طريق تشغيل tmux a. يجب أن تظل ترى نتيجة ذلك الأمر ls السابق. هيا، لا فقدان للبيانات من الانقطاع!
يمكنك رؤية جميع هذه الخطوات أعلاه ممثلة بصورة بصرية أدناه.

إذا قمت بتشغيل أداة Midnight Commander داخل
tmux
، قد تلاحظ أن ليس لديك دعم للفأرة. يمكنك حل هذه المشكلة عن طريق تشغيلmc -x
بدلاً من ذلك.
تمكين tmux عند تسجيل الدخول
بشكل افتراضي، لن يكون tmux متاحًا في جلسات SSH جميعها. يمكنك تغيير ذلك عن طريق إجبار tmux على الانضمام إلى جلسة SSH في كل مرة تقوم فيها بتسجيل الدخول.
نفترض أنك متصل بخادم Linux الخاص بك عبر SSH:
- افتح أداة Midnight Commander باستخدام mc.
2. قم بتحديد ملف .bashrc واضغط تحرير.
ملف
.bashrc
هو نص (سطر أوامر) يشغل في كل مرة تقوم فيها بتسجيل الدخول عبر سطر الأوامر
3. أضف الكود البرمجي للشل أدناه إلى نهاية ملف النص.
4. انقر على خروج واحفظ عند الطلب.
5. اختبر تلقائيًا انضمام tmux عن طريق فصل الجلسة SSH الخاصة بك وإعادة الانضمام. يجب أن تحصل على شريط أخضر في الأسفل تلقائيًا، مشيرًا إلى أنك متصل بجلسة tmux
!
هذا ليس سوى لمحة سريعة عما يمكن أن يقوم به tmux
، إنه برنامج متعدد المهام قوي جدًا. إذا سألت أي مسؤول Linux عن أكثر أمر يستخدمونه، فمن المحتمل أن يكون tmux
.
ختام
هذا يختتم أحدث مشاركة في سلسلة مدونة رجل Windows في عالم Linux. ترقبوا مدونة ATA للتدوينات القادمة!