الدخول إلى الخادم بمفتاح SSH بدل كلمة المرور
تسجيل الدخول إلى الخوادم بكلمات المرور يترك الخادم عرضة لهجمات التخمين الآلية (Brute Force) المستمرة على منفذ SSH. يوفر استخدام المفاتيح المشفرة (SSH Key Pairs) حماية شبه مستحيلة الكسر ويسرع عملية الدخول اليومية بأمان وسلاسة.
لماذا خوارزمية Ed25519 بدلاً من RSA؟#
تعتمد خوارزمية Ed25519 على التشفير بالمنحنيات الإهليلجية (Elliptic-curve cryptography)، وتتميز بطول مفتاح قصير جداً (256-bit) يوفر أماناً أعلى من مفتاح RSA 3072-bit أو 4096-bit، فضلاً عن سرعة التوليد والتحقق ومقاومتها للهجمات الجانبية (Side-channel attacks).
الخطوة 1: توليد زوج المفاتيح على جهازك الشخصي#
شغّل الأمر التالي على حاسوبك الشخصي (في نافذة Terminal على لينكس/ماك أو PowerShell على ويندوز):
ssh-keygen -t ed25519 -C "admin@example.com"
سيطلب منك النظام تحديد مكان حفظ المفتاح (اضغط Enter للمسار الافتراضي ~/.ssh/id_ed25519)، ثم سيطلب تعيين عبارة مرور (Passphrase) اختيارية لحماية المفتاح على جهازك في حال سُرق القرص.
الخطوة 2: نسخ المفتاح العام إلى الخادم#
زوج المفاتيح يتكون من مفتاحين: المفتاح الخاص (Private Key) ويجب ألا تغادر نسخته جهازك إطلاقاً، والمفتاح العام (Public Key) بصيغة .pub وهو ما يُرفع إلى الخادم.
أسهل طريقة لنسخ المفتاح العام هي استخدام أداة ssh-copy-id من جهازك:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@YOUR_SERVER_IP
إذا لم تكن أداة ssh-copy-id متوفرة على جهازك، يمكنك نسخ المفتاح يدوياً داخل الخادم بوضعه في ملف ~/.ssh/authorized_keys للمستخدم المطلوب مع ضبط الأذونات بدقة:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
cat id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
الخطوة 3: اختبار تسجيل الدخول بالمفتاح#
قبل تعديل أي إعدادات في الخادم، اختبر الاتصال من جهازك الشخصي للتأكد من أن الخادم يقبل المفتاح دون طلب كلمة مرور النظام:
ssh -i ~/.ssh/id_ed25519 user@YOUR_SERVER_IP
الخطوة 4: إيقاف تسجيل الدخول بكلمات المرور نهائياً#
بعد التأكد من نجاح تسجيل الدخول بالمفتاح، يجب إغلاق باب كلمات المرور تماماً لمنع أي محاولات تخمين. افتح ملف إعدادات خادم SSH بصلاحيات sudo:
sudo nano /etc/ssh/sshd_config
ابحث عن الخيارات التالية وتأكد من تعديلها على النحو الآتي:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password
افحص صحة ملف التكوين للتأكد من خلوه من أي أخطاء لغوية قبل إعادة التحميل:
sudo sshd -t
إذا لم تظهر أي رسائل خطأ، أعد تشغيل خدمة SSH لتطبيق التغييرات:
sudo systemctl restart ssh
(على أنظمة AlmaLinux / Rocky Linux يكون اسم الخدمة sshd).



التعليقات