مصافحة SSH والمصادقة بمفتاح المضيف
تتبّعوا مصافحة SSH-2، بدءًا من تبادل الإصدارات والتفاوض على الخوارزميات، وصولًا إلى تبادل المفاتيح ومصادقة الخدمة.
مصافحة SSH والمصادقة بمفتاح المضيف درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
اتصال TCP على المنفذ 22
يبدأ SSH باتصال TCP بالمنفذ 22. بعد إنشاء الاتصال، يتبادل العميل والخادم سلاسل الإصدار، مثل SSH-2.0-OpenSSH_9.3، التي تحدد إصدار البروتوكول والتنفيذ المستخدم. يتيح تبادل الإصدارات هذا للطرفين التأكد من التوافق قبل المتابعة.
مرحلة التفاوض على الخوارزميات
بعد تبادل الإصدارات، يرسل الطرفان حزم SSH_MSG_KEXINIT التي تسرد الخوارزميات التي يدعمانها. وتشمل هذه القوائم أساليب تبادل المفاتيح، وأنواع مفاتيح المضيف، وخوارزميات التشفير المتماثل، وخوارزميات MAC، والضغط. ويحدد تقاطع القائمتين الخوارزميات المختارة للجلسة.
تبادل مفاتيح Diffie-Hellman وECDH
يُنشأ مفتاح الجلسة باستخدام خوارزمية لتبادل المفاتيح، مثل Diffie-Hellman أو ECDH. ينشئ العميل والخادم كلٌّ منهما زوج مفاتيح مؤقتًا، ويتبادلان القيم العامة، ثم يحسب كل طرف السر المشترك نفسه بصورة مستقلة. يُستخدم هذا السر المشترك أساسًا لاشتقاق مفتاح الجلسة، من دون نقله مباشرةً في أي وقت.
مصادقة مفتاح مضيف الخادم
يثبت الخادم هويته بتوقيع تجزئة تبادل المفاتيح باستخدام مفتاحه الخاص للمضيف. ويمكن أن يكون مفتاح المضيف من نوع RSA أو ECDSA أو من التنسيق الحديث Ed25519. ويستخدم العميل المفتاح العام المطابق للتحقق من هذا التوقيع، مؤكدًا أنه يتصل بالخادم الحقيقي وليس بمنتحل.
الثقة عند أول استخدام (TOFU)
عند الاتصال بخادم جديد للمرة الأولى، لا يعرف العميل بعد المفتاح العام للمضيف. يعرض SSH بصمة المفتاح ويطلب من المستخدم قبولها. يخزّن نموذج الثقة عند أول استخدام هذا المفتاح في known_hosts، ويكتشف التغييرات في الاتصالات اللاحقة، محذرًا من هجمات محتملة للرجل في الوسط.
التحقق من بصمة مفتاح المضيف
الطريقة الأكثر أمانًا للتحقق من مفتاح مضيف خادم جديد هي استخدام قناة خارجية. يمكن للمسؤول قراءة بصمة الخادم شخصيًا أو عبر قناة آمنة وموثوقة، ثم مقارنتها بما يعرضه عميل SSH. ويمنع ذلك قبول مفتاح احتيالي بصمت عند الاتصال الأول.
بنية ملف known_hosts
يخزّن ملف known_hosts أسطرًا بالصيغة: hostname algorithm base64-key. ويمثل كل إدخال هوية خادم موثوقة. عند الاتصال بمضيف موجود مسبقًا في known_hosts، يتحقق SSH من تطابق المفتاح المقدَّم مع المفتاح المخزَّن، ويرفض الاتصال عند وجود اختلاف.
اشتقاق مفتاح الجلسة
بعد تبادل المفاتيح، يشتق الطرفان مفاتيح الجلسة بصورة مستقلة باستخدام السر المشترك، وتجزئة التبادل، ومعرّف الجلسة. وتُشتق مفاتيح منفصلة لكل اتجاه من اتجاهات الاتصال، وكذلك للتشفير وعمليات MAC. وهذا يعني أن المفاتيح المستخدمة لحركة البيانات من العميل إلى الخادم تختلف عن المفاتيح المستخدمة من الخادم إلى العميل.
مرحلة الاتصال المشفّر
بعد إنشاء مفاتيح الجلسة، تُشفَّر جميع اتصالات SSH اللاحقة وتُوثَّق. تحمي خوارزمية التشفير المتفق عليها، مثل AES-256-GCM أو ChaCha20-Poly1305، السرية، بينما يضمن MAC سلامة البيانات. وحتى اسم المستخدم وبيانات اعتماد المصادقة يُرسلان داخل هذه القناة المشفّرة.
مقارنة أنواع مفاتيح مضيف SSH
تحظى مفاتيح RSA ذات 2048 أو 4096 بت بدعم واسع، لكنها أبطأ. أما مفاتيح ECDSA المستندة إلى منحنيات NIST فهي أسرع، لكن بعض المختصين لا يثقون بمعلمات منحنيات NIST. وتُعد مفاتيح Ed25519 المستندة إلى Curve25519 التوصية الحديثة: فهي صغيرة وسريعة وتوفر أمانًا قويًا ولا تعتمد على معلمات منحنيات NIST. وتوفر معظم خوادم SSH الحديثة مفاتيح Ed25519 افتراضيًا.
ملخص إنشاء الجلسة
تتضمن مصافحة SSH: إنشاء اتصال TCP، وتبادل الإصدارات، والتفاوض على الخوارزميات، وتبادل المفاتيح الذي ينشئ مفاتيح الجلسة، والتحقق من مفتاح مضيف الخادم، ومصادقة المستخدم. وتجري جميع الخطوات بعد تبادل الإصدارات داخل قناة مشفّرة ومحمية من العبث، ينشئها تبادل المفاتيح.
فحص التحقق من مفتاح المضيف
كيف يتحقق العميل من مفتاح مضيف خادم SSH في الاتصالات اللاحقة بعد الاتصال الأول؟
مراجعة مصافحة SSH
في هذا الدرس: يُنشئ TCP اتصالًا بالمنفذ 22، وتتبادل الأطراف سلاسل الإصدار، ويحدد التفاوض على الخوارزميات خوارزميات التشفير وأساليب تبادل المفاتيح، وينشئ ECDH أو DH سرًا مشتركًا، وتُشتق مفاتيح الجلسة بصورة منفصلة لكل اتجاه، ويثبت الخادم هويته بتوقيع مفتاح المضيف، ويتحقق العميل من المفتاح بمقارنته مع known_hosts باستخدام TOFU عند الاتصال الأول.
الأسئلة الشائعة
هل درس «مصافحة SSH والمصادقة بمفتاح المضيف» مجاني؟
نعم — نص درس «مصافحة SSH والمصادقة بمفتاح المضيف» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «مصافحة SSH والمصادقة بمفتاح المضيف»؟
تتبّعوا مصافحة SSH-2، بدءًا من تبادل الإصدارات والتفاوض على الخوارزميات، وصولًا إلى تبادل المفاتيح ومصادقة الخدمة. تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «مصافحة SSH والمصادقة بمفتاح المضيف»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مصافحة SSH والمصادقة بمفتاح المضيف
- المصادقة بالمفتاح العام وتمرير SSH Agent
- تقنيات أنفاق SSH وإعادة توجيه المنافذ
- تقوية SSH وأفضل ممارسات التدقيق