מפתחות SSH
הגדרות ← אבטחה ← מפתחות SSH.
למה זה קיים לצד הטוקנים
Gitcito מאמת שני דברים שונים, ואנשים מניחים בצדק שהם דבר אחד:
| מאומת על ידי | |
|---|---|
| ה־API של המארח — מאגרים, בקשות משיכה, בעיות, בדיקות CI | הטוקן שלכם |
תעבורת git מעל https:// |
הטוקן שלכם, מוזרק לכתובת |
תעבורת git מעל git@… |
מפתח ה־SSH שלכם, דרך ה־ssh של המערכת |
רימוט כמו git@github.com:me/api.git לעולם אינו נוגע בטוקן. git מוסר את החיבור
ל־ssh, שמעולם לא שמע על טוקן גישה אישי. זה לא מקרה קצה — זה מה שמקבלים כשעמית
הקים את המאגר, כש־.gitmodules משתמש בכתובות git@, כשהחברה שלכם מכבה אימות
HTTPS, או כשהמארח הוא GitLab בניהול עצמי.
כשזה משתבש, ssh אומר Permission denied (publickey) ותו לא. נכון טכנית, חסר
תועלת כעצה.

מה המקטע אומר לכם
כל מפתח שנמצא ב־~/.ssh מציג את הסוג, הגודל, טביעת האצבע וההערה שלו, ובנוסף את
העובדה האחת שמסבירה את רוב הכשלים הפתאומיים:
בסוכן / לא בסוכן. מפתח שהסוכן אינו מחזיק אינו יכול לאמת שום דבר, והסוכן שוכח את תכולתו באתחול מחדש אלא אם נאמר למערכת ההפעלה אחרת. ״זה עבד אתמול״ זה בדרך כלל זה.
מה אפשר לעשות כאן
| פעולה | מה זה מריץ |
|---|---|
| העתקת המפתח הציבורי | שם את שורת ה־.pub בלוח, מוכנה להדבקה בכל מארח |
| הוספה לסוכן | ssh-add (עם --apple-use-keychain ב־macOS, כדי שישרוד אתחול מחדש) |
| העלאה ל־GitHub | POST /user/keys עם הטוקן של הפרופיל הזה |
| יצירת מפתח | ssh-keygen -t ed25519, עם הערה של כתובת ה־git שלכם |
| בדיקת החיבור | ssh -T git@<host>, מתורגם למשפט |
בדיקת החיבור קיימת כי התשובה של ssh עצמו מטעה: GitHub מאמת אתכם בהצלחה ואחר כך יוצא עם קוד כישלון, כי הוא אינו מציע מעטפת. Gitcito קורא את ההודעה ולא את קוד היציאה, ומציג את הפלט הגולמי מתחת כדי שתוכלו לבדוק את הקריאה שלו.
המגבלות, נאמרות בפשטות
- העלאה היא ל־GitHub בלבד. GitLab, Bitbucket ו־Azure DevOps מקבלים העתקת המפתח הציבורי וקישור ישיר לעמוד הגדרות המפתחות שלהם. רישום מפתחות בשלושת האחרים אינו ממומש, והכפתור אינו מעמיד פנים אחרת.
- יצירה לעולם אינה דורסת. שם שכבר קיים ב־
~/.sshנדחה. דריסה של מפתח פרטי שוללת בשקט את הגישה שלכם לכל מה שסומך עליו, ושום חלון אישור לא הופך את זה לניתן לשחזור. - סיסמאות מעבר אינן נשמרות על ידי Gitcito. אתם מקלידים אחת ביצירה או בהוספה
לסוכן; היא מועברת ל־
ssh-keygen/ssh-addונזרקת. שימור שלה בין אתחולים הוא עבודתו של מחזיק המפתחות של מערכת ההפעלה, דרךssh-add. - אין עריכת
~/.ssh/config, אין כינויי מארח, ואין בחירת מפתח לכל מאגר. אלה חיים בתצורת ה־ssh שלכם, ו־Gitcito לא נוגע בקובץ הזה.
מה לעולם אינו עוזב את המחשב שלכם
Gitcito לעולם אינו קורא, מציג או משדר מפתח פרטי. המקטע מונה חצאים ציבוריים וטביעות אצבע. הדבר היחיד שנשלח אי פעם לאנשהו הוא המפתח הציבורי שלחצתם עליו העלאה במפורש — וזה הולך ל־GitHub, תחת הטוקן שלכם, אחרי אישור שנוקב בטביעת האצבע.
ראו גם: אבטחה וסודות · אירוח ובקשות משיכה