עבודה עם SSH Keys

המאמר הקודם במדריך ה-git
המאמר הבא במדריך ה-git

רוב ה-git reposittory מוגנים. אנחנו לא יכולים להתחבר אליהם באופן אנונימי אלא צריכים שם משתמש וסיסמה. מה הבעיה? הבעיה היא שזה מאוד מציק וגם לא מאובטח לעבוד עם שם משתמש וסיסמה. קודם כל, צריך לזכור את שם המשתמש והסיסמה כל הזמן. שנית, בגלל שאנחנו מעבירים את שם המשתמש והסיסמה], כל קילוגר מסכן יכול להאזין להקלדה ולקחת את שם המשתמש והסיסמה. הדרך הטובה ביותר היא לעבוד עם SSH keys.

מה זה? מדובר במנגנון שיוצר שני מפתחות – מפתח פרטי ומפתח פומבי ששניהם מתואמים ותלויים זה בזה. את המפתח הפומבי אתה נותן לאתר כלשהו והוא ישמור אותו במסד הנתונים שלו. כשאתה מעוניין להזדהות מולו, הוא יקח את המפתח הציבורי שלך ששמור אצלו וישתמש בו על מנת להצפין מילה מסוימת. את הגיבוב הוא שולח לך. עם המפתח הפרטי אתה יכול לפענח את הגיבוב ולשלוח את המילה המפוענח. במידה והמילה הזו זהה למילה שהוא שלח אליך – הוא יודע שיש לך מפתח פרטי שתואם למפתח הציבורי והאותנטיקציה עברה בהצלחה.
זה הסבר מעט צולע וחוטא לאמת כמו האינטגריטי של אייל גולן, אבל אני מקווה שתבינו את העניין המרכזי – כשאני יוצר SSH Keys אני יוצר שני מפתחות – אחד ציבורי ואחד פרטי.

עבודה עם SSH Keys היא מאוד חשובה כאשר אנחנו עובדים מול שרתים ובמיוחד כאשר אנחנו עובדים מול שרתי גיט – כמו גיטהאב, ביטבאקט או סטאש. הרבה אנשים נרתעים מיצירת המפתחות כי הם עובדים עם חלונות והם חושבים שזה מסובך ליצור את המפתחות האלו על חלונות. אבל האמת היא שזה ממש פשוט לעשות את זה בחלונות (גם בלינוקס/מק כמובן). על מנת להראות כמה זה פשוט אני אחרוג ממנהגי ואדגים על מערכת הפעלה חלונאית.

המצרכים הם:

גיט שמותקן על המחשב. את גיט קל להתקין על חלונות או על לינוקס/מק. אם קראתם את סדרת המאמרים על גיט שמאמר זה הוא חלק ממנה, אז במאמר הראשון יש הוראות התקנה שבגדול הן להוריד את קובץ ה-exe ולהריץ אותו. בהפצת הגיט לחלונות יש כלי שדומה ל-cmd והוא נקרא git bash.

הדגמה של חיפוש git bash בחלונות 8. התוכנה הזו מותקנת אוטומטית בכל חלונות בהתקנת git

הדגמה של חיפוש git bash בחלונות 8. התוכנה הזו מותקנת אוטומטית בכל חלונות בהתקנת git

הכלי הזה נראה ומתנהג בדיוק כמו CMD, אבל הוא מקבל גם פקודות של לינוקס. בכל מקרה, אני מעדיף לעבוד איתו. על מנת ליצור את המפתח, אנחנו צריכים להכניס את הטקסט הבא:

ssh-keygen -t rsa -b 4096 -C "YOURNAME@example.com"

אנחנו יוצרים כאן SSH key בשיטת RSA שהיא שיטת הצפנה (אחד ממפתחיה, אגב, הוא מדען ישראלי בשם עדי שמיר שאף זכה בפרס טיורינג!) בגודל של 4096 ביטים. צריך להכניס את המייל שלכם והוא נכנס כהערה.

ככה זה נראה:

הצעד הראשון בהתקנת מפתח SSH

הצעד הראשון בהתקנת מפתח SSH

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

אחרי היצירה, תוכלו להכנס לתיקיה שציינתם בתהליך היצירה ולראות שיש שם תיקיה ששמה הוא ssh. (שימו לב לנקודה בהתחלה). בתיקיה יש שני קבצים:

id_rsa.pub
id_rsa

המפתח הפומבי הוא זה שנגמר ב-pub. הוא קובץ טקסט שאפשר ורצוי לפתוח בעורך טקסט נורמלי. זה המפתח שאנחנו צריכים להכניס לשירות שאנחנו רוצים להתחבר אליו. אנחנו נכנס לשירות – בין אם מדובר בגיטהאב או בין אם מדובר ב-stash. בגיטהאב למשל, צריך להכנס לקישור הזה. פותחים את המפתח הפומבי באמצעות עורך הטקסט, מסמנים ומעתיקים ומדביקים בממשק הוובי. הנה הדוגמה ב-stash:

הכנסת המפתח הפומבי לממשק הוובי

הכנסת המפתח הפומבי לממשק הוובי

עכשיו אנחנו צריכים להורות ל-git שלנו להשתמש במפתח הפומבי להצפנה. זה קל מאוד. פותחים את git bash ומקלידים:

eval "$(ssh-agent -s)"

ואז

ssh-add ~/.ssh/id_rsa

פה בעצם אנחנו אומרים ל-ssh agent להשתמש במפתח הפרטי להצפנה.

צריך לזכור שאנחנו משתמשים ב-ssh links ולא ב-https. כל מה שנותר לעשות זה להתחיל לעבוד. בהתחברות הראשונה, נשאל אם אנחנו רוצים להוסיף את השרת שמולו אנחנו עובדים לרשימת השרתים הבטוחים:

התחברות ראשונה - אישור התחברות לשרת

התחברות ראשונה – אישור התחברות לשרת

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

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

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (11 הצבעות, ממוצע: 4.64 מתוך 5)

תגיות: , , פורסם בקטגוריה: Git

יאללה, שתפו :)

אל תשארו מאחור! יש עוד מה ללמוד!

5 comments on “עבודה עם SSH Keys
  1. טפטה הגיב:

    מאוד נהנה מהפוסטים האחרונים,
    אתה מביא פה את הנייעס שה-Git מאפשר.

    תודה רבה.

  2. dviros הגיב:

    אחלה פוסט! אני מאוד אוהב את PuTTYgen:
    https://winscp.net/eng/docs/ui_puttygen
    כמה הוא עדיף אל מול ה-GIT?

    • רן בר-זיק הגיב:

      מצויין שהבאת את הקישור הזה, אולי הייתי צריך להוסיף אותו בפוסט עצמו. אין הבדל בינו לבין ה-git BASH חוץ מאופן ההפעלה (עד כמה שאני יודע). שניהם יוצרים את המפתח הציבורי והפרטי. אני באופן אישי עובד על לינוקס, אז אני משתמש בקונסולה ומה שטוב ב-Git BASH שהוא מאפשר את העבודה מול הקונסולה כמו בלינוקס גם בחלונות 🙂

  3. אלי הגיב:

    כל הכבוד, מאמר מדוייק, git הוא כלי חובה למפתחים

כתיבת תגובה

האימייל לא יוצג באתר.

רישום