GitHub 계정에 2FA를 설정했는데 인증 수단을 잃어버리면 로그인이 불가능하다. 실제로 2FA 잠금이 발생해서 복구한 경험을 기록한다.
Table of contents
Open Table of contents
잠금 상황
2FA가 활성화된 GitHub 계정에서 인증 앱이나 보안 키에 접근할 수 없으면:
로그인 시도 → 2FA 코드 입력 요구 → 인증 수단 없음 → 잠금
이 상태에서는 코드 push, PR 생성, 저장소 접근 모두 불가능하다.
복구 방법
1. 복구 코드 사용 (가장 빠름)
2FA 설정 시 다운로드한 복구 코드(recovery codes)가 있다면:
- 로그인 페이지 → “Use a recovery code” 선택
- 16자리 복구 코드 입력
- 로그인 성공 → 즉시 2FA 재설정
복구 코드는 일회용이므로 사용한 코드는 폐기된다.
2. SSH 키를 통한 복구
계정에 SSH 키가 등록되어 있고 접근 가능하다면:
# SSH 키로 본인 확인
ssh -T git@github.com
# "Hi username!" 출력 확인
SSH 접근이 가능하면 GitHub Support에 이를 증빙으로 제출할 수 있다.
3. Two-factor lockout request
위 방법이 모두 불가능하면 GitHub에 잠금 해제를 요청한다:
GitHub 로그인 페이지 → "Having trouble?" → Account recovery
→ Two-factor lockout request 제출
GitHub이 확인하는 것들:
- 등록된 이메일 주소 접근 가능 여부
- 계정 소유권 증빙 (등록된 SSH 키, 과거 활동 이력 등)
- 개인 또는 조직 계정 여부
처리 결과:
요청 제출 → 이메일 확인 → 본인 확인 절차 → 잠금 해제 또는 거부
처리 기간은 보통 1~3 영업일이다.
복구 후 즉시 할 일
1. 2FA 재설정
Settings → Password and authentication → Two-factor authentication
→ 기존 2FA 해제 → 새로 설정
2. 복구 코드 재생성
Settings → Password and authentication → Recovery codes
→ Generate new recovery codes
→ 안전한 곳에 보관 (비밀번호 관리자, 금고 등)
3. 다중 인증 수단 등록
한 가지 수단만 의존하면 또 잠길 수 있다:
| 인증 수단 | 권장도 |
|---|---|
| 인증 앱 (TOTP) | 필수 |
| 보안 키 (FIDO2/WebAuthn) | 강력 추천 |
| SMS | 비추천 (SIM 스와핑 위험) |
| GitHub Mobile | 추천 (백업용) |
최소 2가지 이상 등록한다.
재발 방지 체크리스트
- 복구 코드를 비밀번호 관리자에 저장
- 인증 앱의 백업/동기화 활성화 (1Password, Authy 등)
- 보안 키 1개 이상 등록
- 조직 계정이라면 조직 관리자가 복구할 수 있는 구조 확인
- 복구 코드를 프린트해서 물리적으로 보관 (선택)
정리
GitHub 2FA 잠금은 보안의 정상 작동이지만, 복구 수단이 없으면 며칠간 작업이 중단된다. 2FA 설정 시 반드시 복구 코드를 안전한 곳에 보관하고, 인증 수단을 2개 이상 등록한다.