본문으로 건너뛰기
Kabkee.github.io
뒤로 가기

GitHub 'Authentication failed … use a personal access token instead' 해결: 토큰 발급과 사용법

2022년 7월 작성, 2026년 10월 보완. 지금 GitHub는 저장소와 권한을 좁게 지정할 수 있는 fine-grained 토큰을 권장한다. 발급 순서를 fine-grained 기준으로 다시 썼다. 토큰을 매번 입력하기 번거로우면 credential.helper 설정을, 토큰 대신 SSH를 쓰려면 GitHub SSH 키 등록을 참고한다.

목차

목차 펼치기

문제 상황

GitHub 저장소를 clone·pull·push·fetch하려고 하면 아래 오류가 나면서 동작하지 않았다.

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for ~

원인

GitHub는 2021년 8월 13일부터 Git 작업에서 계정 비밀번호로 인증하는 방식을 막았다. 터미널이나 외부 프로그램에서 HTTPS로 접근할 때는 비밀번호 대신 personal access token(PAT)을 써야 한다.

해결 방법: fine-grained 토큰 발급

  1. GitHub 오른쪽 위 프로필 → Settings → 왼쪽 맨 아래 Developer settings 로 이동한다.
  2. Personal access tokens → Fine-grained tokens → Generate new token 을 누른다.
  3. 토큰 이름과 만료일(Expiration) 을 정한다. 만료일은 꼭 설정한다.
  4. Repository access 에서 토큰을 쓸 저장소만 고른다(Only select repositories).
  5. Permissions 의 저장소 권한에서 Contents 를 Read and write 로 바꾼다. push까지 하려면 이 권한이 필요하다.
  6. Generate token 을 누르고, 화면에 나온 토큰을 바로 복사한다. 페이지를 벗어나면 다시 볼 수 없다.
  7. Git이 비밀번호를 물을 때 비밀번호 대신 이 토큰을 붙여 넣는다.

여러 저장소에 한꺼번에 접근해야 하거나 fine-grained 토큰이 지원하지 않는 기능이 필요하면, 같은 화면의 Tokens (classic) 에서 repo 권한으로 classic 토큰을 만들 수도 있다. classic 토큰은 접근할 수 있는 모든 저장소에 권한이 생기니 만료일을 짧게 잡는다.

보안 주의점

정리

  1. GitHub 밖(터미널, 외부 프로그램)에서 HTTPS로 인증할 때는 비밀번호 대신 personal access token을 쓴다.
  2. 가능하면 fine-grained 토큰으로 저장소와 권한을 좁게 주고, 만료일을 설정한다.

참고자료


이 글 공유하기:

이전 글
GitHub SSH 키 등록하기: ed25519 키 생성부터 연결 테스트까지
다음 글
Git이 매번 아이디·비밀번호를 물을 때: credential.helper 설정 (store, cache, Git Credential Manager)