في هذا الدرس 6تصفّح المواضيع
أوقفت منصة GitHub منذ أغسطس 2021 قبول كلمات مرور الحساب التقليدية عند تنفيذ أوامر Git من سطر الأوامر؛ نظراً لأن كلمة المرور تمنح صلاحية شاملة غير مقيدة بمستودع محدد، ولا يمكن إلغاؤها لجهاز واحد دون إغلاق جلسة المتصفح بالكامل.
تعتمد هندسة البرمجيات الحديثة على آليتين مشفرتين لتوثيق الهوية مع الخوادم السحابية: أزواج مفاتيح التشفير Ed25519 SSH مع روابط SSH، أو رموز الوصول الشخصية الدقيقة Fine-Grained PAT مع روابط HTTPS.
# Check whether your remote uses HTTPS or SSH
git remote -v
# Configure Git Credential Manager for HTTPS tokens
git config --global credential.helper manager
يتكون زوج مفاتيح SSH من ملفين مرتبطين رياضياً يتم توليدهما بالأمر ssh-keygen -t ed25519 -C "email":
- المفتاح الخاص
~/.ssh/id_ed25519: يبقى محفوظاً بسرية تامة داخل جهازك فقط ومحمياً بعبارة مرور، ويُمنع مشاركته مع أي طرف. - المفتاح العام
~/.ssh/id_ed25519.pub: ينتهي بالامتداد.pub، ويُنسخ محتواه النصي ليُضاف داخل إعدادات حسابك في GitHub.
# Generate modern Ed25519 SSH key pair
ssh-keygen -t ed25519 -C "[email protected]"
# Start ssh-agent and load the private key
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
بعد توليد الزوج وإضافته إلى وكيل المفاتيح ssh-agent، اعرض محتوى المفتاح العام بالأمر cat ~/.ssh/id_ed25519.pub والصقه في إعدادات حسابك على GitHub، ثم اختبر نجاح المصافحة المشفرة بالأمر ssh -T [email protected].
# Display the public key (.pub) to copy into GitHub
cat ~/.ssh/id_ed25519.pub
# Test SSH authentication handshake with GitHub
ssh -T [email protected]
# Hi closetag-dev! You have successfully authenticated.
عند العمل عبر بروتوكول HTTPS داخل الشبكات المقيدة أو أنظمة البناء الآلي، أنشئ رمز وصول شخصي دقيق الصلاحيات Fine-Grained PAT من إعدادات المطورين في GitHub وفق قاعدتين أمنيتين:
- تقييد نطاق المستودعات: اربط الرمز بالمستودع المستهدف فقط بدلاً من منحه صلاحية شاملة لكل مشاريع حسابك.
- تحديد الصلاحية وتاريخ الانتهاء: امنحه صلاحية القراءة والكتابة للمحتوى فقط مع ضبط تاريخ انتهاء صلاحية تلقائي.
# Store HTTPS Personal Access Tokens in OS vault
git config --global credential.helper manager
# Ensure remote URL uses HTTPS when authenticating via PAT
git remote set-url origin https://github.com/closetag/app.git
git remote -v
تعامل مع المفاتيح الخاصة ورموز الوصول بصرامة أمنية قصوى لحماية حسابك ومشاريع فريقك:
- ضبط صلاحيات ملف المفتاح الخاص: يرفض بروتوكول SSH استخدام المفتاح الخاص إذا كان مفتوح القراءة للآخرين؛ لذا يُضبط بالصلاحية
chmod 600 ~/.ssh/id_ed25519في أنظمة Linux وmacOS. - مفتاح مستقل لكل جهاز: ولّد مفتاحاً منفصلاً لكل حاسوب تعمل عليه حتى تتمكن من إلغاء مفتاح أي جهاز مفقود فوراً من لوحة GitHub.
# Restrict ~/.ssh folder and private key permissions
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
# Verify key fingerprint loaded in ssh-agent
ssh-add -l
يقارن الجدول الشامل التالي بين المصادقة عبر مفاتيح التشفير SSH Ed25519 ورموز الوصول الشخصية الدقيقة Fine-Grained PAT لمساعدتك على اختيار الأنسب لبيئة عملك:
| وجه المقارنة | مفاتيح التشفير SSH (Ed25519) | رموز الوصول الدقيقة (Fine-Grained PAT) |
|---|---|---|
| صيغة الرابط البعيد | [email protected]:owner/repo.git | https://github.com/owner/repo.git |
| منفذ الشبكة الافتراضي | المنفذ 22 لبروتوكول SSH | المنفذ 443 لبروتوكول HTTPS |
| طريقة حفظ السر محلياً | ملف ~/.ssh/id_ed25519 محمي بعبارة مرور | داخل خزنة مدير بيانات الاعتماد في النظام |
| الاستخدام الأمثل | الأجهزة الشخصية ومحطات عمل المطورين اليومية | الشبكات المؤسسية وأنظمة الأتمتة والصلاحيات المؤقتة |
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
تعرفت في هذا الدرس على أسباب إيقاف مصادقة كلمات المرور التقليدية، وولّدت أزواج مفاتيح التشفير الحديثة Ed25519 بالأمر ssh-keygen، واختبرت المصافحة المشفرة بـ ssh -T [email protected]، وقارنتها برموز الوصول الدقيقة PAT. الخطوة التالية: انتقل الآن إلى الدرس 27 «نسخ المستودعات البعيدة عبر الأمر git clone» لتنزيل المشاريع السحابية الكاملة إلى جهازك.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 Ed25519 SSH Key مفتاح التشفير Ed25519
- خوارزمية توقيع رقمي حديثة عالية الأمان والسرعة معتمدة في OpenSSH وGitHub لتوثيق اتصالات المطورين.
- للمراجعة
- 02 ssh-agent وكيل المفاتيح ssh-agent
- برنامج خلفي يحتفظ بالمفاتيح الخاصة المفكوكة في الذاكرة لتجنب إعادة إدخال عبارة المرور مع كل أمر.
- للمراجعة
- 03 Fine-Grained PAT رمز الوصول الدقيق PAT
- رمز مصادقة شخصي عبر HTTPS يُقيد بمستودعات محددة وصلاحيات دقيقة وتاريخ انتهاء صلاحية.
- للمراجعة
- 04 Git Credential Manager مدير بيانات الاعتماد
- أداة رسمية تحفظ رموز مصادقة HTTPS بأمان داخل خزنة كلمات المرور الخاصة بنظام التشغيل.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 PAT PAT
- Personal Access Token
- رمز وصول شخصي مُقيد الصلاحيات يُستخدم بدلاً من كلمة المرور عند الاتصال عبر HTTPS.
- للمراجعة
- 02 SSH SSH
- Secure Shell
- بروتوكول الشبكة المشفر لتأمين الاتصال ونقل بيانات Git بين جهازك والخادم.
- للمراجعة
- 03 RSA RSA
- Rivest-Shamir-Adleman
- خوارزمية تشفير تقليدية أقدم حلّت محلها خوارزمية Ed25519 الأحدث والأكثر كفاءة.
- للمراجعة
- 04 CI/CD CI/CD
- Continuous Integration / Continuous Delivery
- خطوط التكامل والنشر المستمر الآلية التي تعتمد على رموز الوصول المقيدة.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
طبّق خطوات توليد المفتاح بالأمر ssh-keygen -t ed25519 وتحميله في الوكيل واختبار التوثيق بـ ssh -T [email protected].
-
تنقّل بين التبويبات الثلاثة في المختبر التفاعلي للتمييز بين المفتاح العام والخاص وآلية حفظ رمز PAT.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي10 أسئلة تنتظرك +
أي أمر يُستخدم لتوليد زوج مفاتيح تشفير SSH بخوارزمية Ed25519 الحديثة؟
يولّد الأمر ssh-keygen -t ed25519 زوج المفاتيح الخاص والعام.
أي ملف داخل المجلد ~/.ssh هو الذي يُنسخ محتواه ويُلصق في إعدادات حسابك على GitHub؟
يُنسخ المفتاح العام المنتهي بالامتداد .pub فقط، بينما يبقى المفتاح الخاص سرياً داخل جهازك.
لا تزال منصة GitHub تقبل كلمة مرور تسجيل الدخول العادية عند مصادقة أوامر Git في الطرفية.
خطأ؛ فقد أوقفت GitHub مصادقة كلمات المرور لأوامر Git نهائياً منذ أغسطس 2021.
كيف تختبر نجاح مصادقة مفتاح SSH مع منصة GitHub مباشرة من الطرفية؟
يختبر الأمر ssh -T [email protected] المصافحة المشفرة ويعرض رسالة ترحيب باسم حسابك.
لماذا تُعد رموز الوصول الدقيقة Fine-Grained PAT أكثر أماناً من الرموز الكلاسيكية على GitHub؟
لأنها تقيد الصلاحيات بمستودعات محددة وأذونات دقيقة مع تاريخ انتهاء صلاحية إلزامي.
ما صلاحية الملف المطلوبة للمفتاح الخاص ~/.ssh/id_ed25519 في أنظمة Linux وmacOS؟
تقيد الصلاحية chmod 600 القراءة والكتابة بمالك الملف فقط وهو شرط إلزامي في OpenSSH.
يُمنع منعاً باتاً حفظ المفتاح الخاص id_ed25519 أو رمز الوصول الشخصي داخل أي مستودع Git.
صواب؛ فالمفاتيح الخاصة والرموز بيانات سرية لا يجوز إدراجها في سجل الإصدارات أبداً.
ما الأداة التي تحتفظ بمفتاح SSH الخاص في الذاكرة لتجنب إدخال عبارة المرور مع كل أمر؟
يحتفظ وكيل المفاتيح ssh-agent بالمفتاح في الذاكرة بعد إضافته بالأمر ssh-add.
عند المصادقة باستخدام رمز الوصول الشخصي PAT، أي صيغة رابط بعيد يجب استخدامها؟
تعمل رموز الوصول الشخصية PAT عبر روابط بروتوكول HTTPS.
توليد مفتاح SSH مستقل لكل حاسوب يسهّل إلغاء صلاحية جهاز واحد فقط عند فقده دون تعطيل بقية أجهزتك.
صواب؛ إذ يمكنك حذف مفتاح الجهاز المفقود وحده من إعدادات GitHub فوراً.