🐙 מדריך אבטחה למפתחים ✓ עמידה בחובת אבטחה

המדריך המלא להגדרת GitHub 2FA, גיבוי SMS וקודי שחזור

עם התגברות מתקפות שרשרת האספקה על תוכנות קוד פתוח ברחבי העולם, GitHub מחייבת אימות דו-שלבי (2FA) עבור כל המפתחים התורמים קוד. למרבה הצער, אלפי מהנדסים מאבדים מדי חודש גישה מלאה לארגונים ולמאגרים הפרטיים שלהם עקב הזנחת קודי שחזור. מדריך טכני זה מכסה הגדרת TOTP, ארכוב קר של קודי שחזור, אינטראקציה עם מפתחות SSH, והצלת חשבון במקרה של נעילה קריפטוגרפית בשעת חירום.

2FA
צוות האבטחה של 2FA-Tool
עודכן באוקטובר 2026
זמן קריאה משוער: 13 דקות (מעל 2,400 מילים)
GitHub 2FA קודי שחזור שרשרת אספקה
💡 תובנות מרכזיות למפתחים (TL;DR)
  • אכיפת החובה היא קבועה: מפתחים שלא יגדירו 2FA עד למועד היעד שנקבע ייחסמו מביצוע פעולות בממשק האינטרנט וסמכויותיהם במאגרי הארגון יישללו.
  • קודי שחזור הם חבל ההצלה שלך: 16 קודי השחזור שנוצרו הינם לשימוש חד-פעמי. שמור אותם בכספת מוצפנת או בהדפסה פיזית קרה ומאובטחת באופן מיידי.
  • סיסמאות Git אינן פועלות עוד: דחיפות Git בפרוטוקול HTTPS אינן יכולות לקבל קודים אינטראקטיביים בני 6 ספרות. עליך להשתמש במפתחות SSH או בטוקני גישה אישיים מוגדרי הרשאות (PAT).
  • מוצא קריפטוגרפי אחרון: אם איבדת את הטלפון ואת הקודים, תוכל להוכיח בעלות על החשבון על ידי חתימה על אתגר אימות באמצעות המפתח הפרטי של SSH המקומי שרשמת מראש.
01

סקירת מדיניות חובת 2FA ב-GitHub וההיגיון האבטחתי שמאחוריה

מבחינה היסטורית, פשרת אישורי מפתחים עוררה פגיעויות הרסניות בשרשרת האספקה של התוכנה. תקריות מתוקשרות – כגון ההשתלטות על event-stream, ua-parser-js, ctx ו-colors.js ב-npm וב-PyPI – הוכיחו כי חשבון בודד שנגנב עלול לסכן מאות אלפי פרויקטים מסחריים ותשתיות קריטיות במורד הזרם.

תוקפים קוצרים אישורים באמצעות מאגרי פרטי התחברות גלובליים (Credential Stuffing), תשתיות דיוג (פישינג) ותלויות מפתחים נגועות בסוסים טרויאניים. מכיוון שמהנדסי תוכנה פועלים באופן שגרתי עם הרשאות root או ניהול לקוד המקור ולצינורות פריסת ה-CI/CD, אבטחת יוצרי הקוד (Committers) הפכה לעניין של בטיחות תשתיות בינלאומית.

בתגובה לכך, GitHub הקימה מדיניות חובה רב-שלבית כוללת הדורשת אימות דו-שלבי עבור כל יוצרי הקוד, מפיצי החבילות, משתמשי הארגונים (Enterprise) וחברי הארגונים:

📌 השלכות של החמצת המועד האחרון להרשמה ל-2FA
  • ממשק האינטרנט של GitHub נכנס למצב חסימה (Captive Gate Modal), האוסר על סקירת Pull Requests, הוספת תגובות ל-Issues וניהול מאגרים עד להשלמת הגדרת ה-2FA.
  • ארגונים עסקיים האוכפים 2FA יפלטו אוטומטית חברים שאינם עומדים בדרישות, תוך שלילת הרשאות כתיבה וביטול זכויות גישה למאגרים באופן מיידי.
  • צינורות עבודה אוטומטיים (Workflows), מפתחות הפצת חבילות npm והרשאות מאגר מפורטות מוקפאים עד לאימות תאימות אבטחת החשבון.
02

מדריך שלב אחר שלב: צימוד מאמת TOTP

למרות ש-GitHub תומכת ב-SMS, הודעות דחיפה לנייד ומפתחות אבטחה פיזיים, אפליקציית מאמת TOTP בתקן RFC 6238 (למשל Google Authenticator, Bitwarden, 2FA-Tool) מייצגת את תקן הזהב לאי-תלות בספקים ולאמינות מלאה ללא חיבור רשת:

1

שלב 1: ניווט להגדרות האימות

התחבר ל-GitHub. לחץ על תמונת הפרופיל שלך בפינה הימנית העליונה ➔ Settings. בסרגל הניווט השמאלי תחת "Access", בחר ב-Password and authentication.

Path: Settings ➔ Password and authentication ➔ Two-factor methods ➔ Set up authenticator app
2

שלב 2: סריקת קוד QR ושמירת הסוד הגולמי ב-Base32

GitHub מציגה קוד QR אופטי לצד קישור טקסט שבו נכתב: "enter this text code instead".

💡 טיפ אבטחה מקצועי: לחץ על קישור הטקסט והעתק את מחרוזת ה-Base32 הסודית בת 32 התווים (למשל A3J5N2O9...). שמור אותה בתוך מנהל הסיסמאות המוצפן שלך. מחרוזת זרע אלפאנומרית זו מאפשרת לך לגזור מחדש טוקני אימות בכל מכשיר אם הטלפון שלך ייהרס או יאבד.
3

שלב 3: הזנת הקוד בן 6 הספרות לאישור

סרוק את הקוד באמצעות המאמת הנייד שלך. הזן את המספר המתחלף בן 6 הספרות המוצג במסך שלך לתוך שדה האימות של GitHub ולחץ על "Continue".

03

תקני ארכוב של קודי שחזור והיגיינה קריפטוגרפית

עם סיום צימוד ה-TOTP בהצלחה, GitHub מציגה מיד חלון מודאלי עם 16 טוקנים הקסדצימליים מופרדים במקפים (למשל d4a2b-98f12). סגירת חלון זה ללא גיבוי עמיד היא הגורם הנפוץ ביותר לנעילה קבועה של חשבונות מפתחים.

🚨 מאפיינים קריפטוגרפיים של קודי שחזור

1. שימוש חד-פעמי בלבד: כל קוד שחזור מבוטל באופן בלתי הפיך לאחר השימוש הראשון בו במקום קוד TOTP.
2. סמכות עליונה: קוד שחזור עוקף חומרה שאבדה ומעניק גישה מיידית לחשבון.
3. גיבוב שרת באפס ידע (Zero-Knowledge): GitHub שומרת קודים אלה כגיבובים קריפטוגרפיים חד-כיווניים ובלתי הפיכים. מהנדסי התמיכה של GitHub אינם יכולים לשחזר או לקרוא את הקודים המקוריים שלך בשום נסיבות שהן!

אסטרטגיית אחסון קר מומלצת בשלוש שכבות:

🥇 קובץ מצורף בכספת סיסמאות

הורד את github-recovery-codes.txt וצרף אותו לרשומת ה-GitHub שלך ב-1Password, Bitwarden או KeePassXC באמצעות מפתחות מאסטר הנגזרים באלגוריתם Argon2id.

🥈 כספת חומרה מנותקת רשת (Air-Gapped)

שמור את קובץ הטקסט בכונן USB מוצפן באמצעות VeraCrypt הנשמר מנותק מרשתות מקומיות ומתוכנות סנכרון ענן.

🥉 הדפסה פיזית עמידה למים

הדפס עותק נייר פיזי, עטוף אותו בלמינציה נגד לחות ונעל אותו בתוך כספת ביתית פיזית להגנה מפני תוכנות זדוניות לגניבת מידע (Info-stealers).

אזהרה למניעת דליפת לוח הגזירים (Clipboard): בעת העתקת 16 קודי השחזור, שים לב למנהלי היסטוריית לוח (כגון Alfred, Raycast או היסטוריית לוח של Windows). קודי שחזור רגישים המאוחסנים במסדי נתונים של לוח כטקסט גלוי עלולים להיגנב על ידי תוכנות זדוניות בעלות הרשאות נמוכות. נקה תמיד את מאגר הלוח שלך מיד לאחר הדבקת אישורי השחזור בכספת המוצפנת שלך.
04

שיטות אימות גיבוי: SMS מול מפתחות גישה (Passkeys) מול אפליקציית GitHub Mobile

GitHub מאפשרת להגדיר מנגנוני גיבוי משניים. עיין בניתוח האבטחה שלנו על פני וקטורי האימות הנוכחיים:

שיטה עמידות בפני דיוג (פישינג) פגיעות להחלפת סים (SIM-Swap) הערכה ותרחיש שימוש מעשי
Passkeys / מפתחות אבטחה FIDO2 מוחלטת (הצמדת מקור ב-WebAuthn מונעת דיוג באמצעות פרוקסי) חסין ⭐⭐⭐⭐⭐ ההמלצה המובילה (YubiKey / Touch ID)
אפליקציית מאמת TOTP בינונית (פגיעה לשרתי פרוקסי הפוכים בזמן אמת) חסין ⭐⭐⭐⭐ בסיס אוניברסלי (אפס תלות בקישוריות רשת)
אישור דחיפה ב-GitHub Mobile בינונית (דורשת אימות מספר דו-ספרתי) חסין ⭐⭐⭐⭐ נוחות יומיומית מצוינת
אימות גיבוי באמצעות SMS אפס (איתות SS7 לא מוצפן, ניתן ליירוט בקלות) סיכון גבוה ⭐ אינו מומלץ עבור מתחזקי פרויקטים בולטים
05

תהליכי Git במסוף: מפתחות SSH, טוקני PAT ואינטראקציית 2FA

לאחר הפעלת 2FA, מפתחים נתקלים לעיתים קרובות בשגיאות מסוף מיידיות במהלך דחיפות קוד שגרתיות:

remote: Support for password authentication was removed on August 13, 2021.
fatal: Authentication failed for 'https://github.com/username/repo.git/'

היגיון טכני: פרוטוקול התקשורת של Git אינו מסוגל לנהל דיאלוג אינטראקטיבי של קודי TOTP בני 6 ספרות. כתוצאה מכך, GitHub ביטלה לצמיתות את האימות באמצעות סיסמת חשבון גולמית עבור בקשות Git בפרוטוקול HTTPS כאשר 2FA מופעל.

🔑 אפשרות א': אימות באמצעות מפתח SSH (מומלץ)

משתמש בהצפנת מפתח ציבורי (מומלץ: ed25519). חיבורי SSH מאמתים באמצעות מפתחות קריפטוגרפיים פרטיים מקומיים ועוקפים לחלוטין את ה-2FA ברשת ללא בקשות אישורים חוזרות ונשנות.

ssh-keygen -t ed25519 -C "[email protected]"
🎫 אפשרות ב': טוקני גישה אישיים (PAT)

אם תעבורת HTTPS הינה חובה, נווט אל Settings ➔ Developer settings ➔ Personal access tokens כדי ליצור טוקן עם הרשאות מוגדרות. כאשר תתבקש להזין סיסמה ב-CLI, הדבק את ה-PAT במקום סיסמת החשבון שלך.

חתימת קומיט ב-SSH מול אימות: שים לב שהשימוש במפתח SSH לשכפול ולדחיפת מאגרים שונה מחתימה קריפטוגרפית על קומיטים. באפשרותך להשתמש באותו צמד מפתחות Ed25519 כדי לחתום על קומיטים באמצעות git config commit.gpgsign true ו-git config gpg.format ssh, וליצור תגי מחבר מאומתים (Verified) ב-GitHub לצד בקרת גישה קפדנית של 2FA.

06

התאוששות מאסון: שחרור נעילת חשבונות ללא 2FA

במקרה של כשל קטסטרופלי שבו הטלפון עם ה-2FA איננו ומסמך קודי השחזור אבד, GitHub מציעה חבל הצלה קריפטוגרפי אחרון: אתגר החתימה באמצעות מפתח SSH (SSH Key Signature Challenge).

1
הגשת ערעור על נעילת חשבון במסך בקשת ה-2FA במהלך ההתחברות, לחץ על "Unable to verify via 2FA?" ➔ בחר ב-"Use emergency recovery code" ➔ אם הקודים אינם זמינים, לחץ על "Request two-factor authentication reset".
2
אימות קוד חד-פעמי בדוא"ל האבטחה GitHub שולחת קוד אישור (PIN) בן 6 ספרות לכתובת הדוא"ל הראשית המאומתת שלך. הזן את הקוד כדי להתקדם לאימות הזהות.
3
ביצוע אתגר מפתח SSH במסוף המקומי GitHub מייצרת ערך אתגר חד-פעמי (Nonce) ומורה לך לחתום עליו באמצעות מסוף תחנת העבודה המקומית שלך:
echo "UniqueChallengeString" | ssh-keygen -Y sign -n "github" -f ~/.ssh/id_ed25519
הדבק את בלוק החתימה המשוריין חזרה בפורטל האינטרנט. GitHub מוודאת מתמטית שהחתימה תואמת למפתח ה-SSH הציבורי הרשום שלך, ומבססת בעלות מוחלטת על החשבון ומשחררת את נעילת הפרופיל שלך לאחר תקופת בדיקה.
🔒 סביבת ניסוי קריפטוגרפית בצד הלקוח

בדוק את סוד ה-TOTP של GitHub באופן מקומי

לפני שתתחייב להגדרה, בדוק את מחרוזת ה-Base32 הסודית הגולמית שלך ב-2FA-Tool. כל הגיבובים מחושבים מקומית באמצעות ממשק ה-Web Crypto של הדפדפן ללא שידור נתונים לשרת.

פתח מחולל מקוון