تنظيم اتصال 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 يدويًا لكل سيرفر، هذا الأسلوب يستحق التجربة.
غالبًا ستلاحظ الفرق بسرعة، خصوصًا مع كثرة الاستخدام.