مقدمة
أحد الأدوات الأساسية التي يجب أن يتقنها مسؤول النظام هو SSH.
SSH، أو الصَّوت الآمِن، هو بروتوكول يُستخدم لتسجيل الدخول بشكل آمن إلى أنظمة البعد. إنه الطريقة الأكثر شيوعًا للوصول إلى خوادم Linux عن بعد.
في هذا الدليل، سنناقش كيفية استخدام SSH للاتصال بنظام بعيد.
نشر تطبيقات الواجهة الأمامية الخاصة بك من GitHub باستخدام منصة تطبيق DigitalOcean. دع DigitalOcean يركز على توسيع تطبيقك.
البنية الأساسية للصياغة
للاتصال بنظام بعيد باستخدام SSH، سنستخدم الأمر ssh
.
إذا كنت تستخدم نظام Windows، ستحتاج إلى تثبيت إصدار من OpenSSH لتتمكن من استخدام ssh
من خلال الطرفية. إذا كنت تفضل العمل في PowerShell، يمكنك اتباع وثائق Microsoft لإضافة OpenSSH إلى PowerShell. إذا كنت تفضل أن يكون لديك بيئة Linux كاملة متاحة، يمكنك إعداد WSL، والنظام الفرعي لـ Linux على نظام Windows، الذي سيتضمن ssh
افتراضيًا. وأخيرًا، كخيار ثالث خفيف، يمكنك تثبيت Git for Windows، الذي يوفر بيئة طرفية bash لـ Windows الأصلية تتضمن أمر ssh
. كل هذه الخيارات مدعومة بشكل جيد وسوف يتوقف اختيارك على تفضيلك.
إذا كنت تستخدم نظام Mac أو Linux، فسيكون لديك بالفعل أمر ssh
متاحًا في طرفيتك.
أبسط شكل للأمر هو:
يفترض هذا الأمر أن اسم المستخدم على النظام البعيد هو نفس اسم المستخدم على النظام المحلي.
إذا كان اسم المستخدم لديك مختلفًا على النظام البعيد، يمكنك تحديده باستخدام هذا الصيغة:
بمجرد الاتصال بالخادم، قد يُطلب منك التحقق من هويتك عن طريق تقديم كلمة مرور. في وقت لاحق، سنتناول كيفية إنشاء المفاتيح لاستخدامها بدلاً من كلمات المرور.
للخروج من جلسة SSH والعودة إلى جلسة الطرف المحلي الخاصة بك، اكتب:
كيف يعمل SSH؟
يعمل SSH عن طريق ربط برنامج العميل بخادم SSH، المسمى بـ sshd
.
في القسم السابق، كان ssh
هو برنامج العميل. وكان خادم SSH يعمل بالفعل على remote_host
الذي حددناه.
على معظم بيئات Linux، يجب أن يبدأ خادم sshd
تلقائيًا. إذا لم يكن يعمل لأي سبب، قد تحتاج إلى الوصول المؤقت إلى خادمك من خلال واجهة ويب، أو واجهة تسلسلية محلية.
العملية المطلوبة لبدء خادم ssh تعتمد على توزيع Linux الذي تستخدمه.
على أوبونتو، يمكنك بدء خادم SSH عن طريق كتابة:
هذا يجب أن يبدأ خادم sshd ويمكنك بعد ذلك تسجيل الدخول عن بُعد.
كيفية تكوين SSH
عندما تقوم بتغيير إعدادات SSH، فإنك تغير إعدادات خادم sshd.
في أوبونتو، يوجد ملف تكوين sshd الرئيسي في المسار /etc/ssh/sshd_config
.
قم بنسخ النسخة الحالية من هذا الملف قبل التحرير:
افتحها باستخدام nano
أو محرر النص المفضل لديك:
سوف تريد ترك معظم الخيارات في هذا الملف كما هي. ومع ذلك، هناك بعض الخيارات التي قد ترغب في إلقاء نظرة عليها:
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
يحدد ما إذا كان المستخدم الجذر مسموحًا له بتسجيل الدخول.
في معظم الحالات، يجب تغيير هذا إلى no
عندما تقوم بإنشاء حساب مستخدم يمتلك صلاحيات مرتفعة (من خلال su
أو sudo
) ويمكنه تسجيل الدخول عبر SSH، من أجل تقليل مخاطر لأي شخص يحصل على وصول جذر إلى خادمك.
strictModes
هو حارس أمان سيُرفض محاولة تسجيل الدخول إذا كانت ملفات المصادقة قابلة للقراءة من قِبَل الجميع.
يمنع هذا المحاولات عندما لا تكون ملفات التكوين آمنة.
X11Forwarding yes
X11DisplayOffset 10
تكوّن هذه المعلمات قدرة تُدعى إعادة التوجيه X11. يتيح لك هذا عرض واجهة مستخدم رسومية (GUI) لنظام بعيد على النظام المحلي.
يجب تمكين هذا الخيار على الخادم وتقديمه مع عميل SSH أثناء الاتصال باستخدام الخيار -X
.
بعد إجراء التغييرات الخاصة بك، قم بحفظ الملف وإغلاقه. إذا كنت تستخدم nano
، اضغط Ctrl+X
، ثم عندما يُطلب منك ذلك، اضغط Y
ثم Enter.
إذا قمت بتغيير أي إعدادات في /etc/ssh/sshd_config
، تأكد من إعادة تحميل خادم sshd الخاص بك لتنفيذ التعديلات:
يجب عليك اختبار تغييراتك بعناية للتأكد من أنها تعمل بالطريقة التي تتوقعها.
قد يكون من الجيد فتح بعض جلسات الطرفية أثناء إجراء التغييرات. سيتيح لك ذلك التراجع عن التكوين إذا لزم الأمر دون أن تحجب نفسك.
كيفية تسجيل الدخول إلى SSH باستخدام المفاتيح
على الرغم من أنه من المفيد أن تتمكن من تسجيل الدخول إلى نظام بعيد باستخدام كلمات المرور، إلا أنه من الأسرع والأكثر أمانًا إعداد المصادقة بناءً على المفاتيح.
كيف تعمل المصادقة القائمة على المفتاح؟
تعمل المصادقة القائمة على المفتاح عن طريق إنشاء زوج من المفاتيح: مفتاح خاص ومفتاح عام.
يقع المفتاح الخاص على جهاز العميل ويتم تأمينه والاحتفاظ به سريًا.
يمكن تقديم المفتاح العام لأي شخص أو وضعه على أي خادم ترغب في الوصول إليه.
عند محاولة الاتصال باستخدام زوج المفاتيح، سيستخدم الخادم المفتاح العام لإنشاء رسالة لجهاز الكمبيوتر العميل يمكن قراءتها فقط باستخدام المفتاح الخاص.
ثم يرسل جهاز الكمبيوتر العميل الرد المناسب إلى الخادم وسيعرف الخادم أن العميل شرعي.
يتم تنفيذ هذه العملية تلقائيًا بعد تكوين المفاتيح.
كيفية إنشاء مفاتيح SSH
يجب إنشاء مفاتيح SSH على الكمبيوتر الذي ترغب في تسجيل الدخول منه. وعادةً ما يكون هذا الجهاز المحلي الخاص بك.
أدخل ما يلي في سطر الأوامر:
قد تُطلب منك تعيين كلمة مرور على ملفات المفتاح نفسها، ولكن هذه ممارسة نادرة إلى حد ما، ويجب عليك الضغط على مفتاح Enter عبر الحوارات لقبول القيم الافتراضية. ستتم إنشاء مفاتيحك في ~/.ssh/id_rsa.pub و ~/.ssh/id_rsa.
قم بالانتقال إلى دليل .ssh
عبر كتابة:
انظر إلى أذونات الملفات:
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. بعد إدخال كلمة المرور، سيتم نسخ مفتاحك العام إلى ملف المفاتيح المصرح بها على الخادم، مما سيسمح لك بتسجيل الدخول دون كلمة المرور في المرة القادمة.
خيارات الجانب العميل
هناك عدد من العلامات الاختيارية التي يمكنك توفيرها عند الاتصال عبر SSH.
قد تكون بعض هذه الإعدادات ضرورية لمطابقة الإعدادات في تكوين sshd
على الخادم البعيد.
على سبيل المثال، إذا قمت بتغيير رقم المنفذ في تكوين sshd
الخاص بك، فستحتاج إلى مطابقة ذلك المنفذ على جانب العميل من خلال كتابة:
ملاحظة: تغيير منفذ SSH هو طريقة معقولة لتوفير الأمان من خلال الغموض. إذا كنت تسمح باتصالات SSH إلى خادم معروف على نطاق واسع على المنفذ 22 كالمعتاد، وكنت قد قمت بتمكين المصادقة بكلمة مرور، فمن المحتمل أن تتعرض للهجمات من محاولات تسجيل دخول آلية. استخدام المصادقة بالمفاتيح حصرًا وتشغيل SSH على منفذ غير قياسي ليس أكثر الحلول الأمنية التي يمكنك اتباعها، ولكن يجب أن تقلل من هذه المحاولات إلى الحد الأدنى.
إذا كنت ترغب في تنفيذ أمر واحد فقط على نظام بعيد، يمكنك تحديده بعد الخادم مثل هذا:
سوف تتصل بالجهاز البعيد، وتقوم بالمصادقة، وسيتم تنفيذ الأمر.
كما ذكرنا سابقًا، إذا تم تمكين توجيه X11 على كل من الحواسيب، يمكنك الوصول إلى تلك الوظيفة عن طريق كتابة:
بشرط أن يكون لديك الأدوات المناسبة على جهاز الكمبيوتر الخاص بك، ستفتح البرامج التي تستخدمها على النظام البعيد نافذتها الآن على نظامك المحلي.
تعطيل المصادقة بكلمة المرور
إذا قمت بإنشاء مفاتيح SSH، يمكنك تعزيز أمان خادمك عن طريق تعطيل المصادقة بواسطة كلمة المرور فقط. بجانب واجهة الأوامر، سيكون الطريق الوحيد لتسجيل الدخول إلى خادمك هو من خلال المفتاح الخاص الذي يتزامن مع المفتاح العام الذي قمت بتثبيته على الخادم.
تحذير: قبل أن تقوم بهذه الخطوة، تأكد من تثبيت مفتاح عام على خادمك. في حال عدم ذلك، ستحظر من الدخول!
باستخدام صلاحيات المستخدم الجذرية أو المستخدم ذو الامتيازات الخاصة ب sudo، افتح ملف تكوين sshd
:
ابحث عن السطر الذي يحتوي على Password Authentication
، وقم بإلغاء تعليقه بإزالة العلامة التعليقية الرئيسية #
. يمكنك بعد ذلك تغيير قيمته إلى no
:
PasswordAuthentication no
هناك إعدادين آخرين قد لا يلزم تعديلهما (شريطة أن لم تقم بتعديل هذا الملف من قبل) وهما PubkeyAuthentication
و ChallengeResponseAuthentication
. يتم تعيينهما افتراضيًا، ويجب أن يكون قراءتهما كالتالي:
PubkeyAuthentication yes
ChallengeResponseAuthentication no
بعد إجراء التغييرات، قم بحفظ وإغلاق الملف.
يمكنك الآن إعادة تحميل ديمون SSH:
يجب أن يتم تعطيل المصادقة بواسطة كلمة المرور الآن، ويجب أن يكون خادمك متاحًا فقط من خلال مصادقة المفتاح SSH.
استنتاج
تعلم طريقتك حول SSH سيفيدك كثيرًا في أي من مشاريع الحوسبة السحابية المستقبلية لك. بينما تستخدم الخيارات المختلفة، ستكتشف وظائف متقدمة أكثر يمكن أن تجعل حياتك أسهل. لقد بقي SSH شائعًا لأنه آمن وخفيف ومفيد في مواقف متنوعة.
بعد ذلك، قد ترغب في التعرف على كيفية العمل مع SFTP لأداء نقل الملفات عبر سطر الأوامر.
Source:
https://www.digitalocean.com/community/tutorials/how-to-use-ssh-to-connect-to-a-remote-server