نظرة عامة
يُعد SSH (Secure Shell) بروتوكول شبكة قياسيًا وأساسيًا لإدارة خوادم لينكس عن بُعد. سنتناول في هذا المقال، خطوة بخطوة في بيئة أوبونتو، كيفية إنشاء خادم OpenSSH، والمصادقة بالمفتاح العام دون كلمة مرور، وإعادة توجيه منافذ SSH للاتصال الشبكي العملي، بالإضافة إلى أهم النصائح لتعزيز الأمان.
1. تثبيت خادم OpenSSH وتفعيل الخدمة
لتوفير خدمة الاتصال عن بُعد على نظام أوبونتو، نقوم بتحديث قائمة الحزم إلى أحدث إصدار وتثبيت حزمة openssh-server.

لتفعيل خدمة SSH المُثبتة لتبدأ تلقائيًا عند تشغيل النظام وتشغيلها على الفور، نقوم بتنفيذ الأمر systemctl enable --now ssh.

نتحقق مما إذا كان برنامج خلفية خدمة SSH (sshd) يعمل بشكل سليم وفي حالة نشطة (active (running)).

للتحقق مما إذا كان يستمع في وضع الانتظار (LISTEN) على المنفذ 22، وهو المنفذ الافتراضي لـ SSH، في انتظار اتصالات الشبكة، نقوم بتنفيذ الأمر ss -tulpn | grep :22.

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

في حال عدم وجود زوج مفاتيح يعتمد على خوارزمية Ed25519، المتميزة بأمانها العالي وأدائها الممتاز، نقوم بتنفيذ الأمر test -f ~/.ssh/id_ed25519 || ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519 لإنشاء زوج جديد.
من نتيجة تنفيذ الأمر، يمكننا التأكد من إنشاء المفتاح الخاص (id_ed25519) والمفتاح العام (id_ed25519.pub) بنجاح.

نقوم بإضافة محتوى المفتاح العام الذي تم إنشاؤه إلى ملف المفاتيح المصرح بها ~/.ssh/authorized_keys.

للحفاظ على أمان ملف قائمة مفاتيح المصادقة واجتياز الفحص الصارم للأذونات من قِبل برنامج خلفية SSH، نقوم بتقييد أذونات الملف authorized_keys وضبطها على 600.

نحدد المفتاح الخاص Ed25519 الذي أنشأناه ونحاول الاتصال بعنوان الاسترجاع المحلي (127.0.0.1) للتحقق مما إذا كانت المصادقة القائمة على المفاتيح تعمل بشكل سليم.
تُظهر نتيجة تنفيذ الأمر رسالة تؤكد نجاح الاتصال عبر مصادقة المفتاح المحلي دون الحاجة لإدخال كلمة مرور.

3. التوجيه النفقي للشبكات عمليًا: تطبيق إعادة توجيه منافذ SSH
لتشغيل خادم الويب واختبار طلبات HTTP، نقوم بتحديث قائمة الحزم وتثبيت حزمتي curl وpython3.

لإنشاء دليل مستندات الويب لاستخدامه في اختبار إعادة توجيه المنافذ وإنشاء ملف HTML اختباري، نقوم بتنفيذ الأمر mkdir -p /tmp/webroot && echo '<h1>SSH Tunnel Test OK</h1>' > /tmp/webroot/index.html.

لتشغيل خادم ويب بسيط في الخلفية على المنفذ 8080 ليعمل كخدمة داخلية، نقوم بتنفيذ الأمر python3 -m http.server 8080 --directory /tmp/webroot >/dev/null 2>&1 &.

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

نرسل طلب HTTP إلى المنفذ المحلي 9090 المعاد توجيهه عبر نفق SSH للتحقق من أن الاتصال بخادم الويب الداخلي يتم ترحيله بشكل سليم.
تُظهر نتيجة تنفيذ الأمر استجابة خادم الويب الداخلي على المنفذ 8080، وهي <h1>SSH Tunnel Test OK</h1>، مما يؤكد أن إعادة توجيه المنفذ تعمل بشكل مثالي.

بعد اكتمال اختبار إعادة توجيه المنفذ، نقوم بتنفيذ الأمر pkill -f 'http.server 8080' لإنهاء عملية خادم الويب الاختباري التي كانت تعمل في الخلفية بأمان.

4. إعدادات تعزيز أمان خادم SSH عمليًا (sshd_config)
للتحسب لأي طارئ قد يحدث أثناء تعديل الإعدادات والاحتفاظ بنسخة من التكوين الأصلي، نقوم بعمل نسخة احتياطية من ملف الإعدادات باستخدام الأمر sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.

لتعزيز الأمان ومنع تسجيل الدخول المباشر عن بُعد لحساب الجذر (root) تمامًا، نقوم بتنفيذ الأمر sudo sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config لتعديل قيمة الإعداد.

للتحقق مسبقًا وبأمان من خلو ملف إعدادات خادم SSH المعدل من أي أخطاء نحوية أو إملائية، نقوم بتنفيذ الأمر sudo sshd -t.
بعد تنفيذ الأمر، لا تظهر أي رسالة خطأ، مما يؤكد صحة صياغة الإعدادات وخلوها من المشاكل.

للتحقق من تطبيق خيار حظر تسجيل دخول الجذر (PermitRootLogin no) بشكل صحيح في ملف الإعدادات، نقوم بتنفيذ الأمر grep -E '^(PermitRootLogin|PasswordAuthentication)' /etc/ssh/sshd_config || echo '설정 검증 완료'.
تُظهر نتيجة تنفيذ الأمر ظهور PermitRootLogin no بنجاح، مما يؤكد تطبيق إعداد الأمان بالكامل.

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