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

يتحقق الأمر ssh -V من معلومات إصدار عميل OpenSSH المثبت على النظام.
⚙️ [الخيارات الرئيسية]
-p : لتحديد رقم منفذ مخصص يستخدمه الخادم البعيد بدلاً من المنفذ الافتراضي 22.-i : لتحديد مسار ملف المفتاح الخاص (Private Key) المستخدم للمصادقة بدلاً من كلمة المرور.-v : لعرض رسائل تصحيح الأخطاء (Debug) للاطلاع بالتفصيل على مسار الاتصال وأسباب حدوث المشاكل.-C : لتفعيل ضغط البيانات أثناء نقلها لتوفير سعة نطاق الشبكة (Bandwidth).-o : لتمرير خيارات الإعداد المحددة عادةً في (~/.ssh/config) مباشرة من سطر الأوامر (مثل: ConnectTimeout).-L : لضبط إعادة توجيه المنفذ المحلي (Local Port Forwarding) لتوجيه حركة المرور إلى خدمة في الشبكة البعيدة.-R : لضبط إعادة توجيه المنفذ البعيد (Remote Port Forwarding) للسماح بالوصول من الخادم البعيد إلى خدمة محلية.

يحاول الأمر ssh -p 22 -o ConnectTimeout=5 [email protected] الاتصال بالمضيف البعيد المحدد باستخدام المنفذ 22 مع مهلة اتصال قدرها 5 ثوانٍ.
يمنع هذا الإعداد الانتظار اللانهائي في حال بطء أو انقطاع الاتصال، ويتيح التحقق السريع من حالة الاتصال.

2. إنشاء زوج مفاتيح SSH وضبط الأذونات الآمنة
نقوم بتجهيز الدليل المخصص لحفظ ملفات مفاتيح SSH بأمان وقصر الوصول عليه للمالك فقط باستخدام الأمر mkdir -p ~/.ssh && chmod 700 ~/.ssh.

ينشئ الأمر ssh-keygen -t ed25519 -C 'lab-demo@ubuntu' -f ~/.ssh/id_ed25519 -N '' زوج مفاتيح SSH جديداً يعمل بدون كلمة مرور باستخدام خوارزمية Ed25519، وهي أحدث معايير التشفير.
تُظهر نتائج تنفيذ الأمر إنشاء المفتاح الخاص (id_ed25519)، والمفتاح العام (id_ed25519.pub)، وبصمة المفتاح الفريدة بنجاح.

لتلبية متطلبات الأمان الصارمة لخادم SSH، نقوم بضبط أذونات الملفات عبر الأمر chmod 600 ~/.ssh/id_ed25519 && chmod 644 ~/.ssh/id_ed25519.pub، بحيث يتمكن المالك فقط من قراءة وكتابة المفتاح الخاص، بينما يتاح للجميع قراءة المفتاح العام.

يعرض الأمر ls -la ~/.ssh قائمة الملفات المنشأة داخل الدليل بالتفصيل مع حالة أذونات الأمان المطبقة عليها.
من خلال النتائج، يمكننا التحقق من تطبيق الأذونات المقصودة بشكل صحيح: الدليل .ssh يحمل drwx------ (700)، والمفتاح الخاص يحمل -rw------- (600)، والمفتاح العام يحمل -rw-r--r-- (644).

3. تسجيل المفتاح العام لتسجيل الدخول بدون كلمة مرور (ssh-copy-id)
نقوم بإنشاء الملف المخصص لحفظ المفاتيح العامة المستخدمة للمصادقة عند الاتصال عن بُعد وضبط أذونات الوصول ليتمكن المالك فقط من قراءته والكتابة إليه عبر الأمر touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys.

لإضافة محتوى المفتاح العام الذي أنشأناه إلى قائمة المفاتيح المصرح بها، ننفذ الأمر cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys.

يستعلم الأمر ssh-keygen -l -f ~/.ssh/authorized_keys عن بصمة ملف المفاتيح المصرح بها للتحقق من إدراج المفتاح العام بشكل سليم.
تؤكد النتيجة تسجيل مفتاح Ed25519 العام بطول 256 بت مع التعليق التوضيحي المحدد أثناء الإنشاء (lab-demo@ubuntu) بشكل صحيح.

4. تبسيط أوامر الاتصال المعقدة باستخدام ملف إعدادات SSH Config
بدلاً من إدخال معلومات الاتصال الطويلة في كل مرة، نقوم بتعريف عنوان IP للمضيف البعيد واسم المستخدم ورقم المنفذ ومسار مفتاح المصادقة داخل الملف ~/.ssh/config للاتصال بسهولة عبر اسم مستعار (Alias).

لتجنب رفض عميل SSH لملفات الإعداد غير الآمنة برمجياً، نضبط أذونات الملف عبر الأمر chmod 600 ~/.ssh/config لتمكين المالك فقط من قراءته والكتابة إليه.

يعرض الأمر cat ~/.ssh/config محتويات ملف إعدادات عميل SSH للتأكد من حالة التكوين.
توضح المخرجات حفظ اسم المضيف وحساب المستخدم والمنفذ والمفتاح الخاص للمصادقة تحت الاسم المستعار dev-server تماماً كما أردنا.

5. رفع إنتاجية العمل عن بُعد عبر تنفيذ الأوامر المفردة ونفق SSH
يتحقق الأمر ssh -V من إصدار عميل OpenSSH المثبت حالياً على النظام.

يقوم الأمر ssh -o BatchMode=yes -o ConnectTimeout=2 [email protected] 'uname -a; df -h' || true بتنفيذ أوامر استعراض معلومات النظام والتحقق من مساحة القرص مباشرة على المضيف البعيد دون الدخول في جلسة طرفية تفاعلية، ثم يُرجع النتائج.
يتيح هذا التكوين تنفيذ أوامر مفردة دون انتظار إدخال كلمة المرور، مما يجعله مثالياً وآمناً لسكربتات الأتمتة والمهام الدورية (Batch Jobs).

ينشئ الأمر ssh -f -N -L 8080:localhost:80 -o ConnectTimeout=2 [email protected] || true نفقاً مشفراً وآمناً في الخلفية دون تنفيذ أي أوامر بعيدة، مما يحقق إعادة توجيه المنفذ المحلي عن طريق ربط المنفذ 8080 على النظام المحلي بالمنفذ 80 على الخادم البعيد.
يسمح ذلك بالوصول الآمن عبر المنفذ المحلي إلى خدمات الويب أو قواعد البيانات الداخلية البعيدة التي لا يمكن الوصول إليها مباشرة من الخارج.

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