Pack Camo

مولّد أزواج مفاتيح RSA وSSH

أزواج مفاتيح RSA وECDSA وEd25519 بصيغتي PEM وOpenSSH، تُنشأ على جهازك.

كل شيء يعمل محليًا — لا يُرفع أي شيء.

جارٍ إنشاء زوج المفاتيح…

أنشئ زوج مفاتيح SSH أو RSA دون تثبيت أي شيء

ينشئ هذا المولّد زوج مفاتيح جديدًا من نوع Ed25519 أو ECDSA (P-256، P-384، P-521) أو RSA (2048، 3072، 4096 بت) باستخدام Web Crypto API في متصفحك، ويصدّره بالشكل الذي تحتاجه: مفتاح OpenSSH خاص وسطر <code>authorized_keys</code> تمامًا كما ينتجهما <code>ssh-keygen</code>؛ وملفات PEM بصيغتي PKCS#8 وSPKI لـ OpenSSL وTLS ومكتبات JWT؛ وJWK عام؛ وبصمة <code>SHA256:</code>. تُنشأ المفاتيح على جهازك، ولا يغادر المفتاح الخاص هذه الصفحة أبدًا.

كيفية إنشاء زوج مفاتيح SSH

  1. 1اختر نوع المفتاح: Ed25519 هو الخيار الافتراضي الحديث لـ SSH؛ واختر RSA للخوادم القديمة ولمفاتيح توقيع PEM أو JWT.
  2. 2اكتب تعليقًا إن أردت، وعادةً يكون user@host، لتتعرّف على المفتاح لاحقًا في authorized_keys.
  3. 3اضغط إنشاء. نزّل المفتاح الخاص باسم id_ed25519 (أو id_rsa، id_ecdsa) والمفتاح العام بالاسم نفسه مع .pub.
  4. 4انقل الملفين إلى ~/.ssh/، ونفّذ chmod 600 ~/.ssh/id_ed25519، ثم أضف سطر المفتاح العام إلى ~/.ssh/authorized_keys على الخادم أو إلى إعدادات مفاتيح SSH في خدمة Git التي تستخدمها.

أي نوع مفتاح أختار؟

Ed25519
صغير (مفتاح عام من 68 حرفًا)، وسريع، ومقاوم لأخطاء التنفيذ. يدعمه OpenSSH 6.5 وما بعده وGitHub وGitLab وكل خادم حديث. أفضل خيار لـ SSH اليوم.
ECDSA (P-256, P-384, P-521)
منحنيات NIST، تحتاجها عندما تفرضها قواعد الامتثال أو حيث لا يُقبل Ed25519، كما في بعض الرموز المادية وخدمات المفاتيح السحابية.
RSA
الأوسع توافقًا، بما في ذلك خوادم SSH القديمة جدًا وكثير من مكتبات TLS وJWT (RS256). استخدم 3072 بت على الأقل للمفاتيح التي يجب أن تبقى صالحة بعد 2030؛ و2048 هو الحد الأدنى الذي لا يزال مقبولًا.

شرح الصيغ

مفتاح OpenSSH الخاص
<code>-----BEGIN OPENSSH PRIVATE KEY-----</code>، وهي الصيغة التي يكتبها <code>ssh-keygen</code> افتراضيًا. يُنشأ هنا دون تشفير؛ أضف عبارة مرور لاحقًا باستخدام <code>ssh-keygen -p -f id_ed25519</code>.
مفتاح OpenSSH العام
سطر واحد، <code>ssh-ed25519 AAAA… comment</code>، لـ <code>authorized_keys</code> وGitHub وGitLab ولوحات التحكم السحابية.
مفتاح PKCS#8 خاص (PEM)
<code>-----BEGIN PRIVATE KEY-----</code>، الحاوية القياسية التي يقرؤها OpenSSL وJava وNode.js وGo ومعظم مكتبات JWT لأي نوع من المفاتيح.
مفتاح SPKI عام (PEM)
<code>-----BEGIN PUBLIC KEY-----</code>، صيغة X.509 SubjectPublicKeyInfo المستخدمة للتحقق من التواقيع وفي إعدادات التحقق من JWT.
JWK
المفتاح العام بصيغة JSON (RFC 7517) مع بصمة <code>kid</code>، جاهز للنشر على نقطة نهاية JWKS.

البصمات

البصمة هي تجزئة SHA-256 للمفتاح العام بصيغة SSH الثنائية، مرمّزة بـ Base64 دون حشو: SHA256:…. هذا ما يطبعه ssh-keygen -lf id_ed25519.pub، وما يعرضه GitHub بجانب كل مفتاح، وما يظهره SSH عندما يطلب منك الوثوق بمضيف جديد. مقارنة البصمات هي طريقة التحقق من أن نسختين من مفتاح عام هما المفتاح نفسه.

هل إنشاء المفاتيح في المتصفح آمن؟

تأتي المفاتيح من crypto.subtle.generateKey، وهي التشفير المدمج في المتصفح، ويستخدم مولّد الأرقام العشوائية الآمن في نظام التشغيل، وهو المصدر نفسه الذي يستخدمه ssh-keygen. لا يُرسل أي شيء عبر الشبكة: يمكنك تحميل هذه الصفحة وقطع الاتصال وإنشاء المفاتيح دون إنترنت.

أما المفاتيح التي تحمي أنظمة الإنتاج، فأكثر مكان أمانًا لإنشائها لا يزال الجهاز الذي سيستخدمها، عبر ssh-keygen -t ed25519، أو مفتاح أمان مادي. هذه الأداة مثالية لبيئات الاختبار، ومفاتيح النشر في CI، ومفاتيح توقيع JWT، والأجهزة التي لا تحتوي على OpenSSH. لفحص شهادة مبنية على مفتاح كهذا، استخدم أداة فك الشهادات.

الأسئلة الشائعة

كيف أنشئ مفتاح SSH عبر الإنترنت؟
اختر Ed25519، واكتب تعليقًا مثل بريدك الإلكتروني، واضغط إنشاء، ثم نزّل المفتاح الخاص (id_ed25519) والمفتاح العام (id_ed25519.pub). ضع الملفين في ~/.ssh وأضف سطر ملف .pub إلى الخادم أو إلى خدمة Git.
هل Ed25519 أفضل من RSA؟
بالنسبة لـ SSH، نعم: مفاتيح Ed25519 أقصر بكثير وأسرع في الاستخدام وتوفر أمانًا مماثلًا لـ RSA-3072. اختر RSA فقط للأنظمة التي لا تدعم Ed25519.
لماذا لا يتوفر Ed25519 في متصفحي؟
أُضيف Ed25519 إلى Web Crypto API في Firefox 129 وSafari 17 وChrome 137. إذا كان متصفحك أقدم، فحدّثه أو اختر ECDSA أو RSA.
هل يمكنني إضافة عبارة مرور إلى المفتاح الخاص؟
يُنشأ المفتاح بدونها. أضفها على جهازك باستخدام ssh-keygen -p -f ~/.ssh/id_ed25519، الذي يشفّر الملف في مكانه.
كيف أحوّل المفتاح إلى صيغة .ppk الخاصة بـ PuTTY؟
افتح PuTTYgen، واختر Load، وحدّد مفتاح OpenSSH الخاص الذي نزّلته، ثم احفظه كمفتاح خاص. يقرأ PuTTYgen صيغة OpenSSH مباشرة.
أي ملف يوضع على الخادم؟
المفتاح العام فقط، أي السطر الوحيد في ملف .pub، مضافًا إلى ~/.ssh/authorized_keys. يبقى المفتاح الخاص على جهازك ولا يجب مشاركته أبدًا.
لماذا يقول SSH إن صلاحيات مفتاحي الخاص مفتوحة أكثر من اللازم؟
يرفض SSH المفاتيح الخاصة التي يستطيع مستخدمون آخرون قراءتها. نفّذ chmod 600 على ملف المفتاح الخاص وchmod 700 على مجلد ~/.ssh.
هل تُرسل المفاتيح إلى خادم؟
لا. تنشئها Web Crypto API في متصفحك على هذه الصفحة، ولا توجد إلا في الذاكرة حتى تنزّلها أو تنسخها.