github 토큰 인증 설정: Personal Access Token 발급과 사용법
github 토큰 인증 설정이 필요한 이유
GitHub는 2021년부터 HTTPS로 push할 때 계정 비밀번호를 받지 않습니다. 대신 Personal Access Token(PAT)을 비밀번호 자리에 입력해야 합니다. 그래서 github 토큰 인증 설정을 모르면 remote: Support for password authentication was removed 같은 에러를 만나게 됩니다. 이 글에서는 Personal Access Token을 발급하고 적용하는 법을 처음부터 정리합니다.
증상: 이런 메시지가 뜹니다
remote: Support for password authentication was removed on August 13, 2021.
fatal: Authentication failed for 'https://github.com/user/repo.git/'1단계: Personal Access Token 발급하기
GitHub 웹사이트에서 발급합니다. 두 종류가 있는데 입문자는 둘 중 하나를 고르면 됩니다.
| 종류 | 특징 | 추천 상황 |
|---|---|---|
| Fine-grained token | 특정 저장소·권한만 부여(최신 권장) | 보안이 중요한 경우 |
| Classic token | 설정이 간단, 범위(scope) 단위 | 빠르게 시작할 때 |
발급 경로:
- GitHub 우상단 프로필 → Settings
- 좌측 맨 아래 Developer settings
- Personal access tokens → Tokens (classic) 또는 Fine-grained tokens
- Generate new token 클릭
- 이름(Note), 만료일(Expiration) 설정
- 권한은 repo(classic) 또는 해당 저장소의 Contents: Read and write(fine-grained)를 체크
- Generate token 후 표시되는 토큰을 즉시 복사
경고: 토큰은 발급 직후 한 번만 보입니다. 페이지를 닫으면 다시 볼 수 없으니 안전한 곳에 복사해 두세요. 토큰은 비밀번호이므로 코드나 채팅에 절대 노출하면 안 됩니다.
2단계: push할 때 토큰 입력하기
이제 push하면 아이디와 비밀번호를 묻습니다. 비밀번호 자리에 방금 만든 토큰을 붙여넣으세요.
git push origin main
# Username: 본인 GitHub 아이디
# Password: (붙여넣기) ghp_xxxxxxxxxxxx ← 토큰3단계: 매번 입력하지 않게 자격증명 저장하기
토큰을 한 번만 입력하고 기억시키려면 credential helper를 설정합니다.
# Windows: 자격증명 관리자 사용 (권장)
git config --global credential.helper manager
# macOS: 키체인 사용
git config --global credential.helper osxkeychain
# 간단 저장(평문 저장이라 개인 PC에서만)
git config --global credential.helper store주의: store는 토큰을 평문 파일(~/.git-credentials)에 저장합니다. 공용 PC에서는 쓰지 말고, Windows는 manager, macOS는 osxkeychain을 쓰세요.
원격 URL에 토큰을 직접 넣는 방법 (비권장)
git remote set-url origin https://<토큰>@github.com/user/repo.git가능은 하지만 토큰이 설정 파일에 평문으로 남아 권장하지 않습니다. credential helper 방식을 쓰세요.
SSH를 쓰면 토큰이 필요 없나요?
맞습니다. SSH 키를 등록하면 매번 토큰 없이 push할 수 있습니다.
# SSH 키 생성
ssh-keygen -t ed25519 -C "[email protected]"
# 공개키 내용 확인 후 GitHub Settings → SSH keys에 등록
cat ~/.ssh/id_ed25519.pub
# 원격을 SSH 주소로 변경
git remote set-url origin [email protected]:user/repo.git주의점 정리
- 토큰은 발급 직후 한 번만 보이니 즉시 복사
- 만료일이 지나면 push가 다시 막히니 재발급 필요
- 토큰을 실수로 노출했다면 즉시 GitHub에서 Revoke(폐기)
자주 묻는 질문
Q1. 예전에 저장된 잘못된 비밀번호 때문에 계속 인증 실패해요.
Windows라면 자격 증명 관리자(Credential Manager)에서 git:https://github.com 항목을 삭제한 뒤 다시 push해 토큰을 새로 입력하세요. git config --global credential.helper manager가 설정돼 있어야 새 토큰을 묻습니다.
Q2. fine-grained와 classic 중 뭘 골라야 하나요?
일단 빠르게 시작하려면 classic + repo 권한이 간단합니다. 다만 보안상으로는 필요한 저장소와 권한만 주는 fine-grained가 권장됩니다. 회사나 공개 프로젝트라면 fine-grained를 쓰는 것이 좋습니다.
Q3. 토큰에 어떤 권한(scope)을 줘야 push가 되나요?
classic 토큰은 repo 범위를 체크하면 코드 push가 가능합니다. fine-grained 토큰은 대상 저장소를 선택하고 Contents 권한을 Read and write로 설정해야 합니다.