אבטחה

עוזר האישורים

Gitcito מחזיק שלושה סוגי סוד שונים, ואנשים מניחים בצדק שהם דבר אחד:

מוחזק על ידי
טוקני API של מארחים — בקשות משיכה, בעיות, בדיקות CI Gitcito, במחזיק המפתחות של מערכת ההפעלה שלכם
תעבורת git@… מפתח ה־SSH שלכם, דרך סוכן ה־ssh של המערכת
תעבורת https:// עוזר האישורים של git עצמו

השלישי אינו נחשב לתכונה בעיני אף אחד עד שהוא משתבש, ואז הוא מייצר את שתי התלונות הנפוצות ביותר ב־git: למה זה שואל אותי שוב? ולמה זה עדיין שולח את הטוקן ששללתי?

⌘K ← עוזר האישורים.

העוזר המוגדר, כללים לכל מארח, ואזהרת הקובץ הפשוט

על מה אתם מסתכלים

כל credential.helper מוגדר, בהיקף שממנו הוא מגיע — system, global, ואז המאגר הזה. העוזרים מוערמים: git שואל כל אחד בתורו, ועוזר ברמת המאגר אינו מחליף עוזר גלובלי.

כל אחד נבדק מול המחשב שלכם:

דגל פירושו
מוכן תוכנית העוזר קיימת ותרוץ
לא מותקן מוגדר, אבל התוכנית חסרה — כל בקשה נופלת חזרה להקלדה ידנית
סיסמאות בקובץ פשוט העוזר store (ראו למטה)

כללים למארחים מסוימים מונה מקטעי credential.<url>.*. הם גוברים על ההגדרה הרגילה עבור הכתובות שהם תואמים, והם בדרך כלל התשובה ל״למה המארח האחד הזה מתנהג אחרת״.

בחירת עוזר

עוזר לאן הסיסמה הולכת
osxkeychain מחזיק המפתחות של macOS — מוצפן, לכל משתמש
manager Git Credential Manager (Windows, חוצה פלטפורמות)
wincred מנהל האישורים של Windows
libsecret שירות הסודות של לינוקס (GNOME Keyring, KWallet)
cache זיכרון, ל־15 דקות. שום דבר בדיסק
store קובץ פשוט בתיקיית הבית שלכם. לא מוצפן

Gitcito מציע את מה שבאמת מותקן במחשב הזה, מסמן את זה שמתאים למערכת ההפעלה שלכם, ומאפיר את השאר.

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

העוזר store, וקובץ ~/.git-credentials

store כותב שורות https://user:password@host אל ~/.git-credentials, בטקסט פשוט, בלי הצפנה מכל סוג. כל דבר שרץ בשמכם יכול לקרוא אותו: סקריפט, postinstall של תלות, כל דבר.

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

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

שכחת אישור שנשמר

כשטוקן נשלל או מוחלף, העוזר ממשיך למסור את הישן וכל דחיפה נכשלת עם 401 שאינו נוקב בשם דבר. שכחה מבקשת מהעוזר המוגדר למחוק את הרשומה שלו למארח הזה — git credential reject, שהיא הדרך המתועדת של git עצמו.

שום דבר לא נקרא בדרך: Gitcito לעולם אינו קורא ל־git credential fill, הפקודה שהייתה מדפיסה סיסמה חיה לפלט הסטנדרטי.

הדחיפה הבאה תשאל אתכם פעם אחת, והעוזר ישמור את התשובה החדשה.

מגבלות ששווה להכיר

  • זה המחסן של git, לא של Gitcito. שינוי שלו משנה גם את מה שהטרמינל שלכם עושה — וזו הפואנטה, ושווה לדעת את זה לפני שמשנים.
  • עוזרים ברמת המערכת מוצגים, לא ניתנים לעריכה. הם חיים בתצורה שרק מנהל מערכת יכול לכתוב.
  • Gitcito אינו יכול למנות את מה שעוזר מחזיק. שום API של אישורים לא חושף את זה בלי למסור את הסודות, ולכן החלון מדווח על התצורה ומוחק לפי בקשה, וזה הכול.
  • טוקן שנתתם ל־Gitcito הוא נפרד. שלילה של אחד אינה נוגעת בשני; ראו אבטחה לצד של מחזיק המפתחות.

ראו גם: אבטחה · מפתחות SSH · סנכרון

שיפור התרגום הזה ב־GitHub