איך ליצור ולהשתמש במפתחות SSH של GitLab

תהליכי הזנת שם משתמש וסיסמה חוזרים פעמיים הם מצוינים ומבלים זמן. אם אתה משתמש באימות סיסמה עם חשבון ה-GitLab שלך, כל פעולה מחייבת אותך לשלוח את פרטי הכניסה שלך, בין אם זה כחלק מהפקודה או דרך תיקשורת אינטראקטיבית.

במיוחד כאשר אתה מאופטמן את צינורות ה- CI/CD ב-GitLab, אימות באמצעות סיסמה יכול להיות לא יעיל ואף מהווה סיכון אבטחתי אפשרי. למה לא לסיים את הסבל שלך ולעבור לאימות באמצעות מפתחות SSH מאובטחות ב-GitLab? קרא ולמד איך!

עם סיום המדריך הזה, יהיה לך זוג מפתחות SSH, ותשתמש במפתח כדי לאמת ולפרסם פרויקט GitLab חדש.

דרישות מוקדמות

מדובר במדריך מעשי. כדי לעקוב, הכן את הדרישות הבאות.

  • חשבון GitLab שלך. אם אין לך עדיין, הירשם לחשבון חינם תחילה.
  • A computer to use as your Gitlab SSH client. This tutorial will be using an Ubuntu 20.04 LTS computer but should work with Windows and macOS too.
  • עדכן או התקן Git. הגרסה האחרונה ככה שכתוב כעת היא 2.25.1.

ויזואל סטודיו קוד (VS Code). הדוגמה במדריך זה תשתמש ב- VS Code 1.62.3.

יצירת זוג מפתחות SSH של GitLab

מפתחות SSH או זוג מפתחות הם מורכבים מ- מפתחות פרטיים וציבוריים. בגדל העץ, המפתח הפרטי הוא מה שהלקוח (המחשב שלך) מציג לשרת (GitLab) לאימות, והמפתח הציבורי הוא מה שהשרת משתמש בו כדי לפענח את המפתח הפרטי שלך. ואם שני המפתחות מתאימים, האימות עובר.

GitLab תומך בשני סוגים של זוגות מפתחות SSH, מפתחות ה- RSA וה- ED25519. אך בדוגמה זו, תצורף את זוג המפתחות ED25519 משום שהוא נחשב יותר מאובטח ממפתחות RSA. עקוב אחר השלבים ליצירת זוג מפתחות SSH.

1. על השולחן שלך, פתח ישיבת טרמינל והרץ את הפקודה הבאה. פקודה זו פותחת את תיקיית הבית שלך ב- VS Code.

code ~

2. ב- VS Code, לחץ על טרמינל —> טרמינל חדש.

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/<שם_משתמש>/.ssh/id_ed25519, כאשר <שם_משתמש> הוא שם המשתמש שלך.

Accepting the default filename

5. לאחר מכן, השאר את הסיסמה ריקה ולחץ על Enter פעמיים. כתוצאה, תיצור זוג מפתחות SSH ללא סיסמה.

Leaving the passphrase empty

אתה צריך לראות תוצאה דומה לצילום המסך למטה שמציג את מיקום המפתח הפרטי (id_ed25519) והמפתח הציבורי (id_ed25519.pub).

המפתחות הפרטיים והציבוריים יש להם את אותו שם הבסיס לקובץ. אך למפתח הציבורי יש סיומת .pub, בעוד שהמפתח הפרטי אין לו סיומת.

Generating the Gitlab SSH key pair

הוספת מפתח SSH של Gitlab לפרופיל שלך

תזכור שהמפתח הפרטי נשאר על המחשב שלך, בעוד שהמפתח הציבורי צריך להיות על שרת ה-Gitlab. לכן לאחר שניתן לייצור את מפתחי ה-SSH שלך, השלב הבא הוא להעלות את המפתח הציבורי לחשבון ה-Gitlab שלך. על מנת לעשות זאת, המשך בדרכים הבאות.

1. פתח את קובץ המפתח הציבורי שלך ב-VSCode. בחלון המסייע, נפתח את התיקייה .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.
  • לבסוף, לחצו על Add key.
Adding the Gitlab SSH key to your profile

שימוש במפתח SSH של Gitlab שלכם

עד כה, יצרתם את המפתח SSH והעליתם אותו לחשבון ה-Gitlab שלכם. הדבר שנשאר הוא לבדוק האם המפתח שלכם עובד על ידי שימוש בו כדי להתחבר ולאמת את זהותכם ב-Gitlab.

התחברות

בטרמינל של VS Code, התחברו לחשבון ה-Gitlab שלכם על ידי הרצת הפקודה הבאה.

ssh -T [email protected]

בהנחה שאתם מתחברים לראשונה, הפקודה תבקש מכם לאמת את אימות המארח ולאשר את החיבור. הקלידו yes בתוך התוך ולחצו על Enter לאישור.

שימו לב שלא הייתה צורך להזין שם משתמש וסיסמה כדי להתחבר? במקום זאת, הפקודת ssh משתמשת באופן אוטומטי במפתחות ה-SSH שלכם לאימות. לאחר התחברות מוצלחת, אמור לראות הודעת ברכה שאומרת, "ברוכים הבאים ל-Gitlab @שם_משתמש!".

Logging in to Gitlab via SSH

פרסום פרויקט חדש

אישרתם כי המפתח SSH שלכם עובד ומאפשר לכם להתחבר בהצלחה. אך האם הוא גם עובד כאשר אתם מתקשרים עם 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
git remote add origin git@gitlab.com:kevin/my-first-project.git

5. הפעל את הפקודה למטה כדי ליצור קובץ ריק במאגר השלך בשם README.md.

touch README.md

6. פתח את קובץ README.md לעריכה והדבק את התוכן הבא בקובץ. שמור את הקובץ לאחר העריכה. הפרויקט הראשון שלי להדגמת מפתחות SSH של Gitlab.

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

7. כעת, ספר ל-Git להוסיף את הקובץ החדש README.md למאגר ולבצע commit לשינויים.

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

תראה פלט דומה למופיע למטה.

Adding a file and committing changes to the repository

8. לבסוף, זמן לפרסם את הפרויקט החדש שלך. הרץ את הפקודה למטה כדי לדחוס את המאגר מהמחשב שלך לחשבון ה-Gitlab שלך.

git push --all origin

כפי שניתן לראות למטה, יצירת הפרויקט הצליחה ואין פרומפטים לזיהוי! Git השתמש במפתחות ה-SSH שלך לאימות עם Gitlab.

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

סיום

מזל טוב על הצלחתך עד כאן במדריך זה! לאורך המדריך שלב אחר שלב, למדת כיצד ליצור ולהשתמש במפתחות SSH כדי לבצע פרסומים מאובטחים של בקרת גרסאות למאגר ה-GitLab שלך.

עם הידע הזה, תוכל כעת לבצע משימות על המאגרים שלך ב-GitLab מבלי לדאוג לחשיפה בטעות של שם המשתמש והסיסמה שלך.

השתמשת כבר באימות מפתח SSH של GitLab בעבר? מה הייתה החוויה? האם אתה ממליץ לאחרים להשתמש גם הם במפתחות SSH, או שיש סיבה להימנע ממנו? תן לנו לדעת.

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