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

0 الأسهم
0
0
0
0

مقدمة

يُعدّ بروتوكول SSH من الأدوات الأساسية التي يجب على مسؤول النظام إتقانها. يُستخدم SSH، أو Secure Shell، لتسجيل الدخول الآمن إلى الأنظمة البعيدة، وهو الطريقة الأكثر شيوعًا للوصول إلى خوادم Linux عن بُعد. في هذا الدليل، سنتناول كيفية استخدام SSH للاتصال بنظام بعيد.

بناء الجملة الأساسي

للاتصال بنظام بعيد باستخدام SSH، نستخدم الأمر ssh. إذا كنت تستخدم نظام Windows، فستحتاج إلى تثبيت إصدار من OpenSSH لتتمكن من استخدام ssh من سطر الأوامر. إذا كنت تفضل العمل في PowerShell، يمكنك اتباع وثائق Microsoft لإضافة OpenSSH إلى PowerShell. إذا كنت تفضل بيئة Linux كاملة، يمكنك إعداد WSL، وهو نظام Windows الفرعي لنظام Linux، والذي يتضمن ssh افتراضيًا. أخيرًا، كخيار ثالث خفيف، يمكنك تثبيت Git لنظام Windows، والذي يوفر بيئة سطر أوامر bash لنظام Windows تتضمن الأمر ssh. كل هذه الخيارات مدعومة بشكل جيد، ويعتمد اختيارك على تفضيلاتك. إذا كنت تستخدم نظام Mac أو Linux، فسيكون لديك الأمر ssh مُثبّتًا بالفعل في سطر الأوامر.

أبسط صيغة للأمر هي:

ssh remote_host

في هذا المثال، يمثل remote_host عنوان IP أو اسم النطاق الذي ترغب بالاتصال به. يفترض هذا الأمر أن اسم المستخدم الخاص بك على النظام البعيد هو نفسه اسم المستخدم الخاص بك على نظامك المحلي.

إذا كان اسم المستخدم الخاص بك مختلفًا على النظام البعيد، فيمكنك تحديده باستخدام هذه الصيغة:

ssh remote_username@remote_host

بعد الاتصال بالخادم، قد يُطلب منك التحقق من هويتك بإدخال كلمة مرور. سنتناول لاحقًا كيفية إنشاء مفاتيح لاستخدامها بدلًا من كلمات المرور.

للخروج من SSH والعودة إلى سطر الأوامر المحلي، اكتب:

exit

كيف يعمل SSH؟

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

في نظام أوبونتو، يمكنك بدء تشغيل خادم SSH عن طريق كتابة الأمر التالي:

sudo systemctl start ssh

سيؤدي هذا إلى تشغيل خادم sshd، وبعد ذلك يمكنك تسجيل الدخول عن بُعد.

كيفية إعداد SSH

عند تغيير إعدادات SSH، يتم تغيير إعدادات خادم sshd. في نظام أوبونتو، يوجد ملف إعدادات sshd الرئيسي في المسار /etc/ssh/sshd_config. قبل التعديل، يُرجى إنشاء نسخة احتياطية من الإصدار الحالي لهذا الملف.

sudo cp /etc/ssh/sshd_config{,.bak}

افتحه باستخدام برنامج nano أو محرر النصوص المفضل لديك:

sudo nano /etc/ssh/sshd_config

يُفضل ترك معظم الخيارات في هذا الملف كما هي، ولكن هناك بعض الخيارات التي قد ترغب في إلقاء نظرة عليها:

Port 22

يُحدد تعريف المنفذ المنفذ الذي يستمع إليه خادم SSHD للاتصالات. افتراضيًا، يكون هذا المنفذ هو 22. يُنصح بعدم تغيير هذا الإعداد إلا إذا كانت لديك أسباب محددة لذلك. في حال تغيير المنفذ، سنوضح لك كيفية الاتصال بالمنفذ الجديد أدناه.

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

تُحدد تعريفات مفاتيح المضيف مكان البحث عن مفاتيح المضيف العامة. وسنتناول مفهوم مفتاح المضيف لاحقًا.

SyslogFacility AUTH
LogLevel INFO

يشير هذان العنصران إلى مستوى التسجيل الذي يجب أن يحدث.

إذا كنت تواجه مشاكل مع SSH، فقد يكون زيادة معدل التسجيل طريقة جيدة لاكتشاف المشكلة.

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

تحدد هذه المعلمات بعض معلومات تسجيل الدخول.

يُحدد LoginGraceTime عدد الثواني التي يُبقى فيها الاتصال مفتوحًا دون تسجيل دخول ناجح. يُنصح بضبط هذا الوقت ليكون أطول بقليل من وقت تسجيل الدخول العادي. يُحدد PermitRootLogin ما إذا كان يُسمح لمستخدم الجذر بتسجيل الدخول. في معظم الحالات، يُفضل تغيير هذا الخيار إلى "لا" عند إنشاء حساب مستخدم يتمتع بصلاحيات مُرتفعة (عبر su أو sudo) ويمكنه تسجيل الدخول عبر ssh لتقليل مخاطر الوصول إلى خادمك بصلاحيات الجذر. يُعد .strictModes بمثابة حماية أمنية تمنع محاولات تسجيل الدخول إذا كانت ملفات المصادقة قابلة للقراءة العامة. يمنع هذا محاولات تسجيل الدخول عندما تكون ملفات التكوين غير آمنة.

X11Forwarding yes
X11DisplayOffset 10

تُهيئ هذه المعلمات ميزة تُسمى إعادة توجيه X11، والتي تُمكّنك من عرض واجهة المستخدم الرسومية (GUI) لنظام بعيد على النظام المحلي. يجب تفعيل هذا الخيار على الخادم، ويجب تحديده عند الاتصال باستخدام الخيار -X مع عميل SSH. بعد إجراء التغييرات، احفظ الملف وأغلقه. إذا كنت تستخدم محرر النصوص nano، فاضغط على Ctrl+X، ثم اضغط على Y، ثم Enter عند ظهور المطالبة. إذا قمت بتغيير أي إعدادات في /etc/ssh/sshd_config، فتأكد من إعادة تشغيل خادم sshd لتطبيق التغييرات.

sudo systemctl reload ssh

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

كيفية تسجيل الدخول إلى SSH باستخدام المفاتيح

على الرغم من أن تسجيل الدخول عن بعد باستخدام كلمات المرور مفيد، إلا أن إعداد المصادقة القائمة على المفاتيح أسرع وأكثر أمانًا.

كيف تعمل المصادقة القائمة على المفاتيح؟

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

كيفية إنشاء مفاتيح SSH

يجب إنشاء مفاتيح SSH على الكمبيوتر الذي تريد تسجيل الدخول منه. عادةً ما يكون هذا جهازك المحلي.

أدخل ما يلي في سطر الأوامر:

ssh-keygen -t rsa

قد يُطلب منك تعيين كلمة مرور لملفات المفاتيح نفسها، ولكن هذا إجراء غير شائع، لذا يُنصح بالضغط على مفتاح الإدخال (Enter) أثناء تنفيذ الأوامر لقبول الإعدادات الافتراضية. سيتم إنشاء مفاتيحك في المسارين التاليين: ~/.ssh/id_rsa.pub و ~/.ssh/id_rsa.

انتقل إلى مجلد .ssh بكتابة الكود التالي:

cd ~/.ssh

انظر إلى أذونات الملف:

ls -l
Output
-rw-r--r-- 1 demo demo 807 Sep 9 22:15 authorized_keys
-rw------- 1 demo demo 1679 Sep 9 23:13 id_rsa
-rw-r--r-- 1 demo demo 396 Sep 9 23:13 id_rsa.pub

كما ترون، فإن ملف id_rsa لا يمكن قراءته أو الكتابة فيه إلا من قبل مالكه. وهذا يساعد في الحفاظ على سريته.

ومع ذلك، يمكن مشاركة ملف id_rsa.pub ولديه الأذونات المناسبة لهذا النشاط.

كيفية نقل المفتاح العام إلى الخادم

إذا كان لديك حاليًا إمكانية الوصول إلى خادم باستخدام كلمة مرور، فيمكنك نسخ مفتاحك العام إليه عن طريق إصدار هذا الأمر:

ssh-copy-id remote_host

سيؤدي هذا إلى بدء جلسة SSH. بعد إدخال كلمة المرور، سيتم نسخ مفتاحك العام إلى ملف المفاتيح المعتمدة للخادم، مما يسمح لك بتسجيل الدخول بدون كلمة مرور في المرة القادمة.

خيارات من جانب العميل

هناك عدد من الأوامر الاختيارية التي يمكنك تقديمها عند الاتصال عبر SSH. قد يكون بعضها مطلوبًا لمطابقة الإعدادات في تكوين sshd الخاص بالمضيف البعيد.

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

ssh -p port_number remote_host

إذا كنت ترغب في تشغيل أمر واحد فقط على نظام بعيد، يمكنك تحديده بعد اسم المضيف كما يلي:

ssh remote_host command_to_run

تتصل بالجهاز البعيد، وتتحقق من هويتك، ثم يتم تنفيذ الأمر.

كما ذكرنا سابقاً، إذا تم تمكين خاصية إعادة توجيه X11 على كلا الجهازين، فيمكنك الوصول إلى هذه الخاصية عن طريق كتابة ما يلي:

ssh -X remote_host

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

تعطيل مصادقة كلمة المرور

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

بصفتك مستخدمًا ذا صلاحيات الجذر أو مستخدمًا يتمتع بصلاحيات sudo، افتح ملف تكوين sshd:

sudo nano /etc/ssh/sshd_config

ابحث عن السطر الذي يقرأ "مصادقة كلمة المرور" واحذفه بإزالة الجزء الأول "#". ثم يمكنك تغيير قيمته إلى "لا".

PasswordAuthentication no

هناك إعدادان آخران لا يحتاجان إلى تغيير (بافتراض أنك لم تُعدّل هذا الملف مسبقًا) وهما PubkeyAuthentication وChallengeResponseAuthentication. يتم ضبطهما افتراضيًا ويجب أن يكونا كما يلي:

PubkeyAuthentication yes
ChallengeResponseAuthentication no

بعد إجراء التغييرات، احفظ الملف وأغلقه.

يمكنك الآن إعادة تحميل برنامج SSH:

sudo systemctl reload ssh

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

نتيجة

يُعدّ تعلّم كيفية استخدام بروتوكول SSH مفيدًا للغاية في أيٍّ من مشاريع الحوسبة السحابية المستقبلية. ومع استخدامك للخيارات المختلفة، ستكتشف وظائف متقدمة تُسهّل عليك العمل. وقد حافظ بروتوكول SSH على شعبيته لكونه آمنًا وخفيفًا ومفيدًا في العديد من المواقف.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً