كيفية إنشاء واستخدام مفاتيح SSH في GitLab

تتكرر مطالبات اسم المستخدم وكلمة المرور مزعجة ومضيعة للوقت. إذا كنت تستخدم التوثيق بواسطة كلمة المرور مع حسابك في Gitlab، تتطلب كل عملية منك إرسال بيانات الاعتماد الخاصة بك، سواء كجزء من الأمر أو عبر مطالبة تفاعلية.

خاصة عند تشغيل تلقائيًا أنابيب CI/CD في GitLab، يمكن أن يكون التوثيق بواسطة كلمة المرور غير فعال ومخاطر أمنية محتملة. لماذا لا تنهي معاناتك وتقوم بالتبديل إلى التوثيق بواسطة ال Secure Shell (SSH) باستخدام مفاتيح Gitlab SSH؟ استمر بالقراءة وتعلم كيف!

بنهاية هذا البرنامج التعليمي، ستكون قد أنشأت زوج من المفتاح SSH، استخدمت المفتاح للتوثيق ونشر مشروع Gitlab جديد.

متطلبات مسبقة

هذا البرنامج التعليمي عبارة عن عرض توضيحي عملي. لمتابعة، تأكد من تحضير المتطلبات الأتية.

  • تحديث أو تثبيت Git . النسخة الأحدث وفقًا لهذا الكتابة هي 2.25.1.

متصفح الشفرة المرئي (VS Code). المثال في هذا البرنامج التعليمي سيستخدم إصدار VS Code 1.62.3.

إنشاء زوج مفاتيح SSH لـ Gitlab

مفاتيح SSH أو زوج مفاتيح تتكون من المفتاح الخاص والمفتاح العام. ببساطة، المفتاح الخاص هو ما يقدمه العميل (جهاز الكمبيوتر الخاص بك) للخادم (Gitlab) للمصادقة، والمفتاح العام هو ما يستخدمه الخادم لفك تشفير المفتاح الخاص الخاص بك. وإذا تطابق كلا المفتاحين، فإن عملية المصادقة تنجح.

يدعم GitLab نوعين من زوج مفاتيح SSH، وهما مفتاح RSA و مفتاح ED25519 SSH. ولكن في هذا المثال، ستقوم بإنشاء زوج مفاتيح ED25519 حيث أنه يُعتبر أكثر أمانًا من مفاتيح RSA. اتبع الخطوات التالية لإنشاء زوج مفاتيح SSH.

1. على سطح المكتب الخاص بك، افتح جلسة في الطرفية وقم بتشغيل الأمر أدناه. هذا الأمر يفتح مجلد المستخدم الرئيسي الخاص بك في VS Code.

code ~

2. على VS Code، انقر فوق Terminal —> New Terminal.

Opening a new terminal instance in VSCode

3. على الطرفية في VS Code، قم بتشغيل الأمر التالي ssh-keygen -t لتوليد نوع مفتاح SSH ED25519. علامة التعليق -C اختيارية ولكن يُفضل استخدامها لجعل مفاتيحك أكثر تمييزًا.

ssh-keygen -t ed25519 -C "Gitlab SSH Key"

4. عند السؤال التالي حول مكان حفظ المفتاح، اضغط على Enter لقبول اسم الملف الافتراضي. يجب أن يكون اسم الملف مماثلًا لـ /home/<username>/.ssh/id_ed25519، حيث <username> هو اسم المستخدم الخاص بك.

Accepting the default filename

5. بعد ذلك، اترك كلمة المرور فارغة واضغط على Enter مرتين. ونتيجة لذلك، ستقوم بإنشاء زوج مفاتيح SSH بدون كلمة مرور.

Leaving the passphrase empty

يجب أن تظهر لك نتيجة مماثلة للصورة أدناه تظهر مواقع المفتاح الخاص (id_ed25519) والمفتاح العام (id_ed25519.pub).

لديهما نفس اسم الملف الأساسي. ولكن المفتاح العام له امتداد .pub، في حين أن المفتاح الخاص ليس له امتداد.

Generating the Gitlab SSH key pair

إضافة Gitlab SSH Key إلى ملف تعريفك

تذكر أن المفتاح الخاص يبقى على جهاز الكمبيوتر الخاص بك، بينما يجب أن يكون المفتاح العام على خادم Gitlab. لذا بعد توليد مفاتيح SSH، الخطوة التالية هي رفع المفتاح العام إلى حساب Gitlab الخاص بك. للقيام بذلك، اتبع الخطوات التالية.

1. افتح ملف المفتاح العام الخاص بك في VSCode. على اللوحة Explorer، قم بتوسيع المجلد .ssh وانقر فوق id_es25519.pub. بعد ذلك، حدد المفتاح العام وانسخه إلى الحافظة.

Copying the public key

2. الآن، افتح متصفح الويب، انتقل إلى https://gitlab.com، وقم بتسجيل الدخول إلى حساب Gitlab الخاص بك.

3. بعد تسجيل الدخول، انتقل إلى إعدادات الملف الشخصي للمفاتيح SSH Keys على https://gitlab.com/-/profile/keys.

  • الصق المفتاح العام الذي نسخته سابقًا في حقل Key.
  • يتم ملء حقل Title تلقائيًا بجزء التعليق من المفتاح العام الخاص بك. اترك قيمة العنوان كما هي أو أدخل القيمة المفضلة لديك.
  • اختياري، حدد تاريخ انتهاء الصلاحية في حقل Expires at.
  • أخيرًا، انقر على إضافة مفتاح.
Adding the Gitlab SSH key to your profile

استخدام مفتاح SSH الخاص بك في Gitlab

حتى الآن، لقد أنشأت مفتاح SSH وقمت بتحميله إلى حساب Gitlab الخاص بك. ما تبقى هو اختبار ما إذا كان مفتاح SSH الخاص بك يعمل عن طريق استخدامه للاتصال والمصادقة على Gitlab.

تسجيل الدخول

في الطرفية لـ VS Code، قم بالاتصال بحساب Gitlab الخاص بك عن طريق تشغيل الأمر التالي.

ssh -T [email protected]

من المفترض أنك تقوم بالاتصال للمرة الأولى، يطلب الأمر منك التحقق من مصداقية المضيف وتأكيد الاتصال. اكتب نعم في الإشارة واضغط على Enter لتأكيد.

لاحظ أنه لم يُطلب منك إدخال اسم مستخدم وكلمة مرور لتسجيل الدخول؟ بدلاً من ذلك، يستخدم أمر ssh تلقائيًا مفاتيح SSH الخاصة بك للمصادقة. بعد تسجيل الدخول بنجاح، يجب أن ترى رسالة ترحيب تقول: “مرحبًا بك في Gitlab @اسم_المستخدم!“.

Logging in to Gitlab via SSH

نشر مشروع جديد

لقد قمت بتأكيد أن مفتاح SSH الخاص بك في Gitlab يعمل ويتيح لك المصادقة بنجاح. ولكن هل يعمل أيضًا عند التفاعل مع Gitlab من خلال Git؟ لماذا لا تختبر ذلك عن طريق نشر مستودع Gitlab جديد؟

1. أولاً، قم بتهيئة إعدادات Git وقم بتكوينها باستخدام اسم مستخدم حساب Gitlab الخاص بك وعنوان البريد الإلكتروني. في نافذة الأوامر لبرنامج VS Code، قم بتشغيل الأوامر git config التالية لتحديد اسم مستخدم Gitlab وعنوان البريد الإلكتروني الخاص بك على التوالي.

git config --global user.name "your_username"
git config --global user.email "[email protected]"

يجب أن تقوم الأمر الذي قمت به بتحديث أو إنشاء ملف ~/.gitconfig بالمعلومات التي قدمتها.

Initializing the Git configuration

2. بعد ذلك، قم بإنشاء مجلد تحت دليل المستخدم الخاص بك لمشروع النطاق الجديد. قم بتسمية المجلد الجديد بـ my-first-project.

سيصبح اسم المجلد أيضًا اسم مشروع مستودع Gitlab الخاص بك.

# إنشاء مجلد جديد
mkdir ~/my-first-project
# تغيير دليل العمل إلى المجلد الجديد
cd ~/my-first-project

3. قم بتهيئة المستودع بتشغيل الأمر التالي. تأكد من تغيير <username> بالاسم المستخدم الخاص بك في Gitlab.

git init

يجب أن ترى رسالة تأكيد مماثلة للصورة أدناه.

Initializing a new repository

4. بعد ذلك، حدد عنوان مستودع Git البعيد لمشروعك. يحدد هذا العنوان ما إذا كنت ستقوم بالمصادقة باستخدام مفاتيح SSH أم باسم مستخدم وكلمة مرور.

ابحث عن الصيغة أدناه، حيث <username> هو اسم مستخدم Gitlab الخاص بك و <project-name> هو اسم مستودع Gitlab. لاحظ أن عنوان المستودع يبدأ بـ [email protected]، مما يشير إلى أنك ستتم المصادقة باستخدام مفتاح SSH بدلاً من اسم المستخدم وكلمة المرور.

git remote add origin git@gitlab.com:<username>/<project-name>.git

تخيل أن اسم المستخدم في جيت لاب هو `kevin`، واسم المستودع هو `my-first-project`. الآن قم بتشغيل الأمر في الطرفية على النحو التالي.

git remote add origin git@gitlab.com:kevin/my-first-project.git

5. قم بتشغيل الأمر أدناه لإنشاء ملف فارغ في مستودعك يسمى `README.md`.

touch README.md

6. افتح ملف `README.md` للتحرير والصق المحتوى التالي في الملف. احفظ الملف بعد التحرير. `مشروعي الأول لتوضيح مفاتيح SSH في جيت لاب.`

My first project to demonstrate Gitlab SSH keys.
Creating a file and adding content

7. الآن، قم بإخبار جيت بإضافة ملف `README.md` الجديد إلى المستودع وتأكيد التغييرات.

git add README.md
git commit -m "My first commit"

سيتمكن من رؤية إخراج مشابه لما هو مبين أدناه.

Adding a file and committing changes to the repository

8. وأخيرًا، حان وقت نشر مستودعك الجديد. قم بتشغيل الأمر أدناه لدفع المستودع من جهاز الكمبيوتر الخاص بك إلى حسابك في جيت لاب.

git push --all origin

كما تستطيع أن ترى أدناه، نجحت عملية إنشاء المشروع ولم تطلب أي بيانات اعتماد! استخدم جيت مفاتيح SSH الخاصة بك للمصادقة على جيت لاب.

Creating a repository in Gitlab

9. وأخيرًا، تأكد من وجود مشروع جيت لاب الجديد الخاص بك عبر الإنترنت. باستخدام متصفح الويب الخاص بك، انتقل إلى https://gitlab.com/dashboard/projects لعرض قائمة مشاريعك الحالية. يجب أن ترى ثم اسم `my-first-project` في القائمة.

Viewing the Projects list in Gitlab

10. علاوة على ذلك، انقر فوق اسم المشروع، ويجب أن ترى ملف `README.md` ومحتوياته على العرض.

Viewing the README file

الختام

Congratulations on reaching this point in the tutorial! خلال هذا الدور السهل خطوة بخطوة، لقد تعلمت كيفية إنشاء واستخدام مفاتيح SSH لإجراء نشر آمن للتحكم في الإصدارات إلى مستودع GitLab الخاص بك.

بفضل هذه المعرفة، يمكنك الآن أداء المهام على مستودعات GitLab الخاصة بك دون القلق بشكل غير مقصود حول تعريض اسم المستخدم وكلمة المرور الخاصة بك.

هل قمت بالفعل باستخدام مصادقة مفتاح GitLab SSH من قبل؟ كيف كانت التجربة؟ هل توصي بشدة للآخرين استخدام مفاتيح SSH، أم هل هناك أي سبب يجب أن يبتعدوا عنها؟ دعنا نعرف رأيك.

Source:
https://adamtheautomator.com/gitlab-ssh/