ما هي مصادقة مفاتيح SSH
تستبدل مصادقة مفاتيح SSH كلمة المرور التي تكتبها عند الاتصال بالخادم بـزوج مفاتيح تشفيري: مفتاح خاص يبقى على جهازك ومفتاح عام تضعه على الخادم. عند الاتصال، تتم مطابقة المفتاحين رياضيًا دون إرسال أي سرّ عبر الشبكة على الإطلاق. وهذه الطريقة أكثر راحة (لا توجد كلمة مرور تكتبها) وأكثر أمانًا بكثير من كلمة المرور التي يمكن تخمينها أو كسرها بالقوة الغاشمة.
هذا هو أول إجراء يجب القيام به بعد إطلاق خادم VPS أو خادم سحابي من Skyline Cloud. تستهدف الخطوات أدناه أوبونتو 22.04 LTS و24.04 LTS، لكنها تنطبق مع تعديلات طفيفة على معظم خوادم لينكس.
المتطلبات المسبقة
- خادم يمكنك الوصول إليه بالفعل عبر SSH، بمستخدم لديه صلاحيات
sudo. على خادم VPS جديد من Skyline Cloud يكون هذا عادةًrootأو مستخدمًا أنشأته عند التزويد. - طرفية على جهازك: تطبيق Terminal على ماك أو لينكس، أو PowerShell / Windows Terminal على ويندوز 10/11 (يأتي OpenSSH مدمجًا).
الخطوة 1 — أنشئ زوج مفاتيح على جهازك المحلي
نفّذ هذا الأمر على جهازك أنت، وليس على الخادم:
ssh-keygen -t ed25519 -C "you@example.com"
نستخدم -t ed25519 لأن مفاتيح Ed25519 حديثة وسريعة وآمنة بطول مفتاح قصير. أما الخيار -C فيضيف تعليقًا فقط (بريدك الإلكتروني) لتتمكن من تمييز المفتاح لاحقًا. وإذا اضطررت إلى دعم نظام قديم لا يدعم Ed25519، فاستخدم مفتاح RSA قويًا بدلًا منه:
ssh-keygen -t rsa -b 4096 -C "you@example.com"
اضغط Enter لقبول موقع الملف الافتراضي (~/.ssh/id_ed25519). وعند طلب عبارة المرور، عيّن عبارة قوية. تشفّر عبارة المرور مفتاحك الخاص على القرص، بحيث لا يمنح حاسوب محمول مسروق صلاحية الوصول إلى الخادم. ولن تكتبها سوى مرة واحدة في كل جلسة إذا استخدمت وكيلًا (الخطوة 5).
ينشئ هذا ملفين:
| الملف | الدور | هل تشاركه؟ |
|---|---|---|
~/.ssh/id_ed25519 |
المفتاح الخاص | لا تشاركه أبدًا |
~/.ssh/id_ed25519.pub |
المفتاح العام | آمن لنسخه إلى الخوادم |
الخطوة 2 — انسخ المفتاح العام إلى خادمك
أسهل طريقة هي ssh-copy-id، الذي يُلحق مفتاحك العام بملف ~/.ssh/authorized_keys على الخادم ويضبط الأذونات نيابةً عنك:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_server_ip
سيُطلب منك إدخال كلمة المرور للمرة الأخيرة. استبدل user باسم مستخدم الخادم لديك (مثل root أو ubuntu) وyour_server_ip بعنوان IP الخاص بخادم VPS.
إذا لم يكن ssh-copy-id متاحًا
على ويندوز، أو إذا كانت الأداة غير موجودة، ثبّت المفتاح يدويًا. اعرض المفتاح العام:
cat ~/.ssh/id_ed25519.pub
انسخ السطر الوحيد من المخرجات، وسجّل الدخول إلى الخادم بكلمة مرورك، ونفّذ:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA... you@example.com" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ضع سطر مفتاحك الخاص بدلًا من سطر المثال. الأذونات الصحيحة مهمة: يتجاهل SSH ملف authorized_keys إذا كان الملف أو مجلد ~/.ssh مفتوحًا أكثر من اللازم.
الخطوة 3 — اختبر تسجيل الدخول بالمفتاح
افتح طرفية جديدة واتصل:
ssh user@your_server_ip
إذا عيّنت عبارة مرور، فسيطلبها نظامك (وليست كلمة مرور الخادم). يجب أن تصل إلى موجّه أوامر الخادم. أبقِ هذه الجلسة مفتوحة أثناء تنفيذ الخطوة التالية، حتى لا يحبسك خطأ ما خارج الخادم.
الخطوة 4 — عطّل المصادقة بكلمة المرور
بمجرد نجاح الدخول بالمفتاح، أوقف كلمات المرور لتصبح محاولات القوة الغاشمة عديمة الجدوى. على الخادم، حرّر ملف إعدادات خدمة SSH:
sudo nano /etc/ssh/sshd_config
ابحث عن هذين السطرين واضبطهما (مع إزالة أي علامة # في البداية):
PasswordAuthentication no
PubkeyAuthentication yes
على أوبونتو 22.04/24.04، تحقق أيضًا من مجلد الإضافات /etc/ssh/sshd_config.d/ — فقد يتجاوز ملف موجود فيه (مثل 50-cloud-init.conf) الملف الرئيسي. تأكد من ألا يضبط أي ملف القيمة PasswordAuthentication yes:
sudo grep -r PasswordAuthentication /etc/ssh/sshd_config /etc/ssh/sshd_config.d/
ثم تحقق من صحة الإعداد وأعد تحميل الخدمة:
sudo sshd -t
sudo systemctl restart ssh
اسم الخدمة على أوبونتو هو
ssh(أيssh.service). فإذا أفاد الأمرrestart sshبعدم وجود مثل هذه الوحدة، فاستخدمsudo systemctl restart sshd.
الآن افتح طرفية جديدة أخرى وتأكد من أنك ما زلت قادرًا على تسجيل الدخول بمفتاحك. لا تغلق جلستك الأصلية إلا بعد نجاح الجلسة الجديدة.
الخطوة 5 — استخدم وكيل SSH (اختياري لكنه مُوصى به)
حتى لا تعيد كتابة عبارة المرور في كل اتصال، حمّل المفتاح إلى الوكيل مرة واحدة في كل جلسة:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
على ماك، خزّنه في سلسلة المفاتيح (Keychain) ليبقى محفوظًا بعد إعادة التشغيل:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
الخطوة 6 — ملف إعداد SSH مرتب (اختياري)
أضف مدخلًا إلى ملف ~/.ssh/config على جهازك المحلي لتتمكن من الاتصال باسم مستعار قصير:
Host skyline-vps
HostName your_server_ip
User ubuntu
IdentityFile ~/.ssh/id_ed25519
الآن يكفيك الأمر ssh skyline-vps.
حل المشكلات
- ما زال يُطلب منك كلمة مرور بعد الخطوة 2. الأذونات غير صحيحة. على الخادم نفّذ
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys، وتحقق من أن الملف مملوك لمستخدمك. Permission denied (publickey). الخادم لا يعرض مفتاحك، أو نسخته إلى مجلد المنزل الخاص بمستخدم خاطئ. أضف-vلرؤية ما يحاوله SSH:ssh -v user@your_server_ip.- حُبست خارج الخادم بعد تعطيل كلمات المرور. استخدم وحدة تحكم المزوّد (وحدة VNC أو التسلسلية عبر الويب في لوحة التحكم) لتسجيل الدخول وإعادة تفعيل
PasswordAuthenticationمؤقتًا.
شغّله على VPS مُدار داخل المملكة
تحمي مفاتيح SSH الاتصال، لكن الخادم نفسه لا يزال بحاجة إلى التحديثات والنسخ الاحتياطي والمراقبة. على خادم VPS أو خادم سحابي من Skyline Cloud تحصل على بنية تحتية مستضافة داخل المملكة العربية السعودية لتلبية متطلبات إقامة البيانات الخاصة بنظام حماية البيانات الشخصية (PDPL) والهيئة الوطنية للأمن السيبراني (NCA) وسدايا (SDAIA)، مع دعم عربي محلي وخيارات مُدارة تتولى تحصين نظام التشغيل والنسخ الاحتياطي السحابي نيابةً عنك. اقرنه بـاستضافة البريد الإلكتروني للأعمال على المنصة ذاتها داخل المملكة، لتبقى منظومتك بالكامل متوافقة.
جاهز لنشر خادم آمن في دقائق؟ أنشئ حسابك على Skyline Cloud وأطلق خادم VPS اليوم.
Comments
0 total · 0 threads