[GitHub 100일 챌린지] Day 7 - 2단계 인증
100일 챌린지 Day 7 - 2단계 인증으로 계정 보안을 강화합니다
배울 내용
- 2단계 인증(2FA)이란
- 인증 앱 설치 및 설정
- 복구 코드 백업하기
Topic1. 2단계 인증(2FA)이란
GitHub 계정에는 코드, 이슈, 토큰, organization 권한이 연결됩니다. 그래서 비밀번호 하나만 믿고 운영하면 위험합니다. 2단계 인증은 비밀번호가 유출되어도 공격자가 바로 로그인하지 못하게 막는 두 번째 문입니다.
2단계 인증의 원리
1
2
3
4
5
6
7
1단계 인증 (비밀번호만):
로그인 → 비밀번호 입력 → 완료
❌ 비밀번호 유출 시 해킹 가능
2단계 인증:
로그인 → 비밀번호 입력 → 인증 코드 입력 → 완료
✅ 비밀번호 유출되어도 안전
왜 2FA가 필요한가?
비밀번호만으로는 부족합니다:
- 🔓 데이터 유출로 비밀번호 노출
- 🎣 피싱 공격
- 🔍 무차별 대입 공격
2FA 사용 시:
1
2
3
해커가 비밀번호를 알아도
→ 내 휴대폰이 없으면 로그인 불가
→ 계정 안전!
2FA 인증 방법
1. 인증 앱 (가장 안전, 권장):
- Google Authenticator
- Microsoft Authenticator
- Authy
2. Passkey (권장):
- 기기 생체 인증 또는 보안 키 기반
- 피싱에 강함
- 지원 기기에서 매우 편리
3. SMS (비권장):
- SIM 스와핑 공격 위험
- 해외에서 사용 불편
4. 보안 키 (고급):
- YubiKey 등 하드웨어 키
- 비용 발생
권장: 인증 앱 또는 passkey를 기본으로 사용하고, 복구 코드를 안전하게 보관하세요.
Topic2. 인증 앱 설치 및 설정
1단계: 인증 앱 설치
추천 앱:
Google Authenticator (간단함):
- iOS: App Store에서 “Google Authenticator” 검색
- Android: Play Store에서 검색
Microsoft Authenticator (고급 기능):
- iOS/Android: 각 스토어에서 검색
- 클라우드 백업 지원
Authy (멀티 디바이스):
- https://authy.com
- 여러 기기에서 사용 가능
앱을 고를 때는 백업 방식도 확인하세요. 휴대폰을 바꿨을 때 인증 계정을 복원할 수 있는지, 복원 과정이 암호화되어 있는지, 여러 기기 동기화가 필요한지에 따라 선택이 달라집니다.
해보기:
1
2
3
1. 앱 스토어 열기
2. "Google Authenticator" 검색
3. 설치 및 실행
2단계: GitHub에서 2FA 활성화
해보기:
1
2
3
4
5
1. GitHub 로그인
2. Settings → Password and authentication
3. "Two-factor authentication" 섹션
4. "Enable two-factor authentication" 클릭
5. "Set up using an app" 선택
3단계: QR 코드 스캔
화면에 나타나는 것:
- QR 코드
- Setup key (수동 입력용)
해보기:
1
2
3
4
1. 인증 앱 열기
2. "+" 또는 "Add account" 클릭
3. "Scan QR code" 선택
4. GitHub 화면의 QR 코드 스캔
수동 입력 방법 (QR 스캔 안 될 때):
1
2
3
1. 인증 앱에서 "Enter setup key" 선택
2. GitHub의 Setup key 복사/붙여넣기
3. Account name: "GitHub" 입력
결과: 인증 앱에 6자리 코드 표시!
Passkey도 함께 고려하기
GitHub는 passkey를 지원합니다. passkey는 비밀번호를 직접 입력하는 대신 기기 인증, 보안 키, 플랫폼 인증자를 사용해 로그인하는 방식입니다.
장점:
- 피싱 사이트에 비밀번호를 입력할 위험 감소
- 휴대폰/노트북의 생체 인증과 잘 맞음
- 보안 키와 함께 쓰면 더 강력함
처음에는 인증 앱으로 2FA를 설정하고, 계정 보안 메뉴에서 passkey를 추가로 등록하는 흐름을 추천합니다.
4단계: 인증 코드 입력
1
2
3
1. 인증 앱의 6자리 코드 확인
2. GitHub "Verify the code from the app" 란에 입력
3. "Enable" 클릭
주의: 코드는 30초마다 변경됩니다!
결과:
1
✅ Two-factor authentication enabled
Topic3. 복구 코드 백업하기
복구 코드란?
휴대폰을 잃어버렸을 때 사용하는 비상 로그인 코드입니다.
1
2
3
휴대폰 분실 시:
복구 코드 없음 → 계정 접근 불가 😱
복구 코드 있음 → 계정 복구 가능 ✅
복구 코드 저장하기
2FA 활성화 직후 나타남:
1
2
3
4
5
6
Recovery codes:
xxxx-xxxx
xxxx-xxxx
xxxx-xxxx
...
(총 16개)
해보기:
1
2
3
1. "Download" 버튼 클릭
2. recovery-codes.txt 파일 저장
3. 파일을 안전한 곳에 보관
안전한 보관 장소:
- ✅ 비밀번호 관리자에 저장
- ✅ 암호화된 USB에 저장
- ✅ 종이에 적어 금고에 보관
- ❌ 클라우드에 평문으로 저장
- ❌ 이메일로 자신에게 전송
복구 코드 사용 방법
휴대폰 없을 때:
1
2
3
4
5
1. GitHub 로그인
2. 비밀번호 입력
3. 2FA 코드 입력 화면에서
4. "Use a recovery code" 클릭
5. 복구 코드 입력
주의:
- 각 복구 코드는 1회만 사용 가능
- 사용한 코드는 표시해두기
- 복구 코드는 비밀번호와 같은 위치에만 두지 않기
새 복구 코드 생성
복구 코드를 다 사용했거나 분실했다면:
1
2
3
1. Settings → Password and authentication
2. "Recovery codes" 섹션
3. "Generate new recovery codes" 클릭
결과: 새로운 16개 코드 생성!
2FA 설정 완료 체크
1
2
3
4
5
✅ 인증 앱 설치 완료
✅ GitHub 2FA 활성화
✅ 인증 앱에 코드 표시됨
✅ 복구 코드 다운로드
✅ 복구 코드 안전하게 보관
로그인 테스트
반드시 테스트하세요:
1
2
3
4
5
1. GitHub 로그아웃
2. 다시 로그인 시도
3. 비밀번호 입력
4. 인증 앱 코드 입력
5. 로그인 성공 확인
테스트는 한 번만 하지 말고 복구 수단도 확인하세요.
1
2
3
4
1. 인증 앱 코드로 로그인 성공
2. 복구 코드가 어디 저장되어 있는지 확인
3. 새 기기에서 로그인할 때 어떤 절차가 필요한지 메모
4. 사용하지 않는 오래된 기기 세션 정리
실제로 휴대폰을 잃어버린 뒤에는 너무 늦습니다. “내가 내 계정에 다시 들어갈 수 있는가?”를 미리 확인해야 합니다.
Topic4. 2FA를 켠 뒤 확인할 것
2FA를 켠 뒤에는 아래 메뉴도 함께 점검하세요.
| 메뉴 | 확인할 내용 |
|---|---|
| Sessions | 낯선 기기 로그인 여부 |
| SSH and GPG keys | 모르는 키가 등록되어 있지 않은지 |
| Applications | 오래된 OAuth 앱 권한 |
| Personal access tokens | 사용하지 않는 토큰 삭제 |
보안은 설정 하나로 끝나지 않습니다. 앞으로 Day 8-9에서 토큰과 SSH 키를 다룰 때도 “필요한 권한만 주고, 쓰지 않으면 지우기”라는 원칙을 계속 적용합니다.
정리
완료 체크:
- 2FA의 개념을 이해했다
- 인증 앱을 설치했다
- GitHub 2FA를 활성화했다
- 복구 코드를 안전하게 보관했다
- 2FA 로그인 테스트를 완료했다
- passkey 또는 보안 키 추가 등록을 검토했다
- 낯선 세션, 앱, 토큰이 없는지 확인했다
중요: 복구 코드는 절대 잃어버리지 마세요!
