ما هو زوج مفاتيح SSH؟

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

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

وصف الأداة

مولد زوج مفاتيح SSH ينشئ أزواج مفاتيح SSH آمنة تشفيرياً من نوع Ed25519 أو RSA مباشرة في متصفحك باستخدام Web Crypto API. لا يتم إرسال أي بيانات إلى خادم — يتم إنشاء جميع مواد المفاتيح محلياً على جهازك. يمكنك اختيارياً إضافة تعليق (عادةً user@hostname) للمساعدة في تحديد المفتاح لاحقاً. يمكن نسخ المفاتيح العامة والخاصة المُنشأة إلى الحافظة أو تنزيلها كملفات، جاهزة للاستخدام مع ssh-copy-id أو أي عميل SSH.

أمثلة

مفتاح عام Ed25519

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@hostname

مفتاح عام RSA (4096-بت)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... user@hostname

مفتاح خاص (صيغة OpenSSH)

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAAB...
-----END OPENSSH PRIVATE KEY-----

الميزات

  • دعم Ed25519 و RSA: اختر بين خوارزمية حديثة قائمة على المنحنيات الإهليلجية أو خوارزمية RSA الكلاسيكية
  • خيارات حجم مفتاح RSA: اختر مفاتيح RSA بحجم 2048 أو 3072 أو 4096-بت لتحقيق التوازن بين الأمان والأداء
  • حقل تعليق اختياري: أضف تعليقاً بأسلوب user@hostname للمساعدة في تحديد المفتاح عبر الأجهزة
  • الإنشاء من جانب العميل: يتم إنشاء المفاتيح بالكامل في متصفحك باستخدام Web Crypto API — لا يتم نقل أو تخزين أي شيء
  • التنزيل بنقرة واحدة: احفظ ملفات المفاتيح العامة والخاصة مباشرة بأسماء الملفات الصحيحة (id_ed25519, id_ed25519.pub, id_rsa, id_rsa.pub)

حالات الاستخدام

  • إعداد الوصول إلى الخادم: أنشئ زوج مفاتيح مرة واحدة ونشر المفتاح العام على أي عدد من خوادم Linux/Unix البعيدة عبر ~/.ssh/authorized_keys لتفعيل دخول SSH بدون كلمة مرور
  • المصادقة على منصات استضافة Git: أضف المفتاح العام إلى GitHub أو GitLab أو Bitbucket للتحقق من عمليات git push و git pull دون إدخال بيانات الاعتماد في كل مرة
  • خطوط أنابيب CI/CD: أنشئ زوج مفاتيح نشر مخصص للنصوص البرمجية الآلية أو وكلاء البناء التي تحتاج إلى وصول SSH إلى الخوادم أو المستودعات الخاصة

كيفية العمل

يستخدم إنشاء المفاتيح واجهة برمجية crypto.subtle المدمجة في المتصفح (Web Crypto). بالنسبة لـ Ed25519، يتم حزم العددية الخاصة الأولية بحجم 32 بايت والمفتاح العام بحجم 32 بايت في صيغة سلك OpenSSH (openssh-key-v1). بالنسبة لـ RSA، يتم تصدير المفتاح بصيغة PKCS#8 DER وتغليفه في مغلف PEM قياسي. يتم ترميز بلوب المفتاح العام بصيغة سلك SSH (اسم الخوارزمية مع بادئة الطول متبوعاً بمواد المفتاح) وترميزه بـ Base64، مطابقاً للصيغة المتوقعة من ملف authorized_keys الخاص بـ OpenSSH.

نصائح

  • بعد التنزيل، عيّن الأذونات الصحيحة على ملف المفتاح الخاص: chmod 600 ~/.ssh/id_ed25519. سيرفض SSH استخدام مفتاح خاص يمكن قراءته من قبل مستخدمين آخرين.
  • استخدم Ed25519 ما لم تحتج إلى التوافق مع الأنظمة القديمة التي لا تدعمه. ينتج عنه مفاتيح أقصر وأسرع من RSA.
  • لا يؤثر حقل التعليق على قوة المفتاح التشفيرية — فهو فقط لتحديد هوية بشرية ويمكن تغييره لاحقاً باستخدام ssh-keygen -c.
  • للحصول على أقصى توافق RSA مع الخوادم القديمة، استخدم مفاتيح بحجم 4096-بت. بالنسبة للخوادم الحديثة، يُفضل Ed25519 بغض النظر عن حجم مفتاح RSA.