← رجوع

دليلي الشخصي لإعداد SSH لأكثر من سيرفر

R

UNIXMAN

Nov 30, 2025

Article Image

تنظيم اتصال SSH مع أكثر من سيرفر: تجربة واقعية من الاستخدام اليومي

في البداية، كنت أتعامل مع SSH بطريقة مباشرة وبسيطة جدًا. كل ما احتجت أدخل على سيرفر، أكتب الأمر كامل:
ssh -p 2222 user@ip
وأكرر نفس الشيء مع كل سيرفر، مع تغيير اليوزر أو الـ IP أو البورت حسب الحاجة. الطريقة كانت تشتغل، وما كنت أشوف فيها مشكلة. لكن مع الوقت، ومع كثرة الاستخدام اليومي، بدأت المشاكل تظهر:
  • أغلط في البورت
  • أدخل على سيرفر غير اللي أقصده
  • أعيد كتابة نفس الأوامر عشرات المرات
خصوصًا لما صار عندي أكثر من بيئة:
  • سيرفرات VPS
  • سيرفر منزلي
  • سيرفرات تجارب ومشاريع
هنا اكتشفت أن المشكلة مو في SSH، بل في طريقة استخدامي له. ومن هذه النقطة بدأت أرتّب نفسي خطوة خطوة.

1) توليد مفاتيح SSH منفصلة لكل سيرفر

أول تغيير سويته هو إني وقفت الاعتماد على إدخال كلمة المرور أو استخدام نفس المفتاح لكل شيء. قررت يكون لكل سيرفر مفتاحه الخاص. السبب بسيط:
  • لو تغير أو تعطل سيرفر، ما يتأثر غيره
  • لو احتجت أحذف مفتاح، أحذفه بدون ما ألمس البقية
استخدمت خوارزمية ed25519، لأنها خفيفة ومناسبة للاستخدام اليومي:
ssh-keygen -t ed25519 -f ~/.ssh/id_srv1 -C "srv1"
ssh-keygen -t ed25519 -f ~/.ssh/id_srv2 -C "srv2"
ssh-keygen -t ed25519 -f ~/.ssh/id_srv3 -C "srv3"

2) رفع المفاتيح للسيرفرات

بعد إنشاء المفاتيح، رفعت المفاتيح العامة لكل سيرفر باستخدام ssh-copy-id:
ssh-copy-id -i ~/.ssh/id_srv1.pub -p 22 [email protected]
ssh-copy-id -i ~/.ssh/id_srv2.pub -p 2222 [email protected]
ssh-copy-id -i ~/.ssh/id_srv3.pub -p 2200 [email protected]
بعد هذه الخطوة، صار الدخول بدون كلمة مرور، وبشكل مباشر.

3) ملف SSH config: النقلة اللي فرقت فعليًا

الخطوة اللي غيرت تجربتي بالكامل كانت استخدام ملف الإعدادات:
~/.ssh/config
فتحت الملف وأضفت إعداد لكل سيرفر:
Host server1
    HostName server1.example.com
    User rayan
    Port 22
    IdentityFile ~/.ssh/id_srv1

Host server2
    HostName server2.example.com
    User ubuntu
    Port 2222
    IdentityFile ~/.ssh/id_srv2

Host server3
    HostName server3.example.com
    User deploy
    Port 2200
    IdentityFile ~/.ssh/id_srv3
بعدها صار الاتصال بهذه البساطة:
ssh server1
ssh server2
ssh server3

4) تنفيذ أوامر بدون دخول كامل

أحيانًا ما أحتاج جلسة تيرمنل كاملة، فقط أحتاج أتأكد أن السيرفر شغال:
ssh server1 'uptime'
هذه الطريقة مفيدة جدًا للفحص السريع أو ضمن سكربتات.

5) ماذا تغيّر بعد هذا التنظيم؟

بعد ترتيب SSH بهذه الطريقة، لاحظت:
  • سرعة أعلى في العمل
  • أخطاء أقل
  • وضوح أفضل بين السيرفرات
الأهم أن التعامل مع السيرفرات صار هادئ ومنظم بدل العشوائية.

الخاتمة

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