포스트

[GitHub 100일 챌린지] Day 7 - 2단계 인증

[GitHub 100일 챌린지] Day 7 - 2단계 인증

100일 챌린지 Day 7 - 2단계 인증으로 계정 보안을 강화합니다

배울 내용

  1. 2단계 인증(2FA)이란
  2. 인증 앱 설치 및 설정
  3. 복구 코드 백업하기

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 또는 보안 키 추가 등록을 검토했다
  • 낯선 세션, 앱, 토큰이 없는지 확인했다

중요: 복구 코드는 절대 잃어버리지 마세요!

다음: Day 8 - Personal Access Token

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.