עבודה עם SSH Keys

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

רוב ה-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 "[email protected]"

אנחנו יוצרים כאן 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 שיזכור עבורכם את הסיסמה.

פוסטים נוספים שכדאי לקרוא

גלילה לראש העמוד