[Github] 깃허브 CLI 로그인 이슈, Access Token - 'fatal: Authentication failed for ...'
이번 포스트에서는 CLI 환경에서 깃허브 계정으로 원격 저장소 접속 할 때, 당황할 수 있는 로그인 이슈를 정리했다.
1. 이슈 상황
해당 이슈는 로컬에서 iterm이나 gitbash와 같은 CLI로 깃허브에 저장된 소스코드를 가져올 때, 경험할 수 있다. 나 같은 경우 이번에 개인 PC를 바꾸게 되면서 깃허브에 있던 소스 코드를 가져오려 하는데 이 문제를 마주했다.
Public 저장소였기 때문에 URL로 소스코드 Clone까지는 문제없었지만, push 상황에서 아래 에러 코드를 만났다.
# push 명령어
git push origin master
# 에러 로그
> remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/git-id/repo-name.git/'
원격저장소에 첫 push를 날릴 때, 깃은 계정 아이디와 패스워드를 요청한다. 실제 웹에서 접속되는 값을 입력해도 위와 같이 인증에 실패했다는 응답을 받게 된다.
2. 원인
문제 원인은 2021년부터 원격 저장소 연동을 위한 인증 방법이 바뀌었음에 있다. 그 전까지 아이디와 비밀번호만 있으면 가능했던 방법이 토큰 기반 인증으로 변경됐다.
로컬 환경에서 원격 저장소에 접근하기 위해서는 최초 1회는 무조건 토큰 정보를 등록해야 한다.
3. 해결 방법
깃허브 기준, 이 문제를 해결하려면 아래와 같은 순서로 진행하면 된다. ( 깃랩 역시 동일 )
- 깃허브 로그인
- 계정 토큰 발급 경로 이동 ( Account > Settings > Developer Settings )
- 토큰 발급 ( Generate New Token )
- 발급된 토큰 값 저장
- CLI 비밀번호 입력란에 해당 토큰 값 입력
자세한 이해를 위해 참고할 수 있는 이미지를 첨부해 두었다.
참고
토큰 발급에 앞서 스코프를 선택(Select scopes)라는 항목에서 잠시 멈칫할 수 있다. 우리가 필요한 기능은 원격 저장소에 대한 접근 기능을 넣어주는 것이기 때문에 repo 항목만 활성화 시키면 된다. 추가적인 기능이 필요하면 아래에 주요 옵션값을 정리해 두었으니 참조하면 된다.
- repo : public, private 관계없이 모든 저장소에 대한 접근 권한
- admin:org : 조직, 팀, 프로젝트에 대한 관리 권한
- admin:org_hook : 조직에 대한 훅(hooks) 사용 권한
- admin:repo_hook : 원격 저장소에 대한 훅(hooks) 사용 권한
- delete_repo : 저장소 삭제 기능
- gists : 코드, 메모 등을 기록 또는 공유하는 기능
- workflow : 깃허브에서 제공하는 CI/CD 기능 ( = Github Actions )