포스트

[GitHub 100일 챌린지] Day 8 - Personal Access Token

[GitHub 100일 챌린지] Day 8 - Personal Access Token

100일 챌린지 Day 8 - Personal Access Token으로 안전하게 인증합니다

배울 내용

  1. Personal Access Token이란
  2. Token 생성하기
  3. Token 안전하게 사용하기

Topic1. Personal Access Token이란

PAT (Personal Access Token)의 개념

비밀번호 대신 Git 명령줄이나 API에서 사용하는 인증 토큰입니다.

1
2
3
4
5
6
7
8
9
기존 방식 (비권장):
git clone https://github.com/user/repo.git
Username: user
Password: your-password ❌

Token 방식 (권장):
git clone https://github.com/user/repo.git
Username: user
Password: ghp_xxxxxxxxxxxx ✅

왜 Token이 필요한가?

2021년 8월부터 GitHub는 비밀번호 인증을 중단했습니다!

1
2
3
4
5
6
7
8
비밀번호 인증:
❌ 2021년 8월 13일부터 불가능
❌ 보안 위험 (plain text 전송)

Token 인증:
✅ 현재 유일한 방법
✅ 권한 제한 가능
✅ 취소 가능

Token vs 비밀번호

구분 비밀번호 Token
만료 없음 설정 가능
권한 전체 선택 가능
취소 불가 (변경만) 즉시 가능
용도 웹 로그인 API, Git CLI
노출 위험 높음 낮음

Token 사용 시나리오

언제 필요한가?:

  1. Git 명령줄에서 push/pull
  2. GitHub API 사용
  3. GitHub Actions
  4. 외부 서비스 연동

Topic2. Token 생성하기

1단계: Token 설정 페이지 접속

해보기:

1
2
3
4
5
6
1. GitHub 로그인
2. Settings → Developer settings
   (좌측 메뉴 하단)
3. Personal access tokens → Tokens (classic)
4. "Generate new token" 클릭
5. "Generate new token (classic)" 선택

2단계: Token 정보 입력

Note (토큰 이름):

1
2
3
4
5
6
용도를 명확히 적기:
✅ "My Laptop Git Access"
✅ "CLI Tool - 2025"
✅ "Project API Access"
❌ "token"
❌ "test"

Expiration (만료 기간):

1
2
3
4
5
6
7
8
9
10
옵션:
- 7 days
- 30 days
- 60 days
- 90 days
- Custom
- No expiration (비권장)

권장: 90 days
(만료 전 갱신 알림 옴)

3단계: 권한(Scope) 선택

기본 Git 사용 (최소 권한):

1
2
3
4
5
✅ repo (전체 선택)
  ✅ repo:status
  ✅ repo_deployment
  ✅ public_repo
  ✅ repo:invite

추가로 필요할 수 있는 권한:

1
2
3
workflow - GitHub Actions 관리
write:packages - 패키지 업로드
delete_repo - Repository 삭제

해보기:

1
2
3
4
1. Note: "My Laptop - Git CLI" 입력
2. Expiration: "90 days" 선택
3. ✅ repo 체크 (전체)
4. 하단 "Generate token" 클릭

4단계: Token 복사 및 저장

화면에 나타나는 Token:

1
ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

⚠️ 중요:

1
2
이 화면을 벗어나면 다시 볼 수 없습니다!
반드시 지금 복사하세요!

해보기:

1
2
3
4
1. Token 복사 (📋 아이콘 클릭)
2. 비밀번호 관리자에 저장
   또는
   안전한 곳에 임시 저장

결과: Personal access token 생성 완료!


Topic3. Token 안전하게 사용하기

Git에서 Token 사용

Repository Clone 시:

1
2
3
4
git clone https://github.com/username/repo.git

Username: your-username
Password: ghp_your_token_here

또는 URL에 포함 (비권장):

1
2
# 비권장 (기록에 남음)
git clone https://ghp_token@github.com/username/repo.git

Token 저장하기 (Git Credential)

Linux/Mac:

1
2
3
4
5
# 영구 저장
git config --global credential.helper store

# 캐시 (15분)
git config --global credential.helper cache

Windows:

1
2
# Windows Credential Manager 사용
git config --global credential.helper wincred

첫 사용 시:

1
2
3
4
5
git push
Username: your-username
Password: ghp_your_token_here

→ 저장됨! 다음부터는 자동 입력

Token 보안 수칙

DO (해야 할 것):

1
2
3
4
5
✅ 비밀번호 관리자에 저장
✅ 용도별로 다른 Token 생성
✅ 최소 권한만 부여
✅ 정기적으로 갱신
✅ 사용하지 않는 Token 삭제

DON’T (하지 말아야 할 것):

1
2
3
4
5
❌ 코드에 Token 하드코딩
❌ GitHub Repository에 업로드
❌ 공개 포럼에 공유
❌ 스크린샷에 포함
❌ 만료 기간 없이 생성

Token이 노출되었다면?

즉시 조치:

1
2
3
4
1. Settings → Developer settings
2. Personal access tokens
3. 해당 Token 옆 "Delete" 클릭
4. 새 Token 생성

GitHub의 자동 감지:

1
2
3
4
Repository에 Token 업로드 시
→ GitHub가 자동으로 감지
→ 즉시 Token 무효화
→ 이메일 알림 발송

Token 관리하기

활성 Token 확인:

1
2
Settings → Developer settings → Personal access tokens
→ 생성한 Token 목록 확인

각 Token 정보:

  • Note (이름)
  • Scopes (권한)
  • Last used (마지막 사용)
  • Created (생성일)
  • Expires (만료일)

정기 점검 (월 1회 권장):

1
2
3
1. 사용하지 않는 Token 삭제
2. 만료 임박 Token 갱신
3. 권한 재검토

정리

완료 체크:

  • Personal Access Token의 개념을 이해했다
  • Token을 생성했다
  • Token을 안전한 곳에 저장했다
  • Git에서 Token을 사용해봤다
  • Token 보안 수칙을 숙지했다

중요: Token은 비밀번호와 동일하게 취급하세요!

다음: Day 9 - SSH 키 설정

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