[GitHub] CLI로 토큰 지정하여 push하기
개요
Git Bash나 Linux 서버 등에서 CLI를 이용해 작업한 commit을 원격 저장소로 push 할 때 터미널 입력으로 사용자 인증 과정을 거치는 경우가 있다. 사람이 직접 push를 수행하는 경우에는 상관없지만, 스크립트 등으로 자동화를 하는 경우에는 사용자 인증 정보를 포함하여 push 명령을 수행해야 한다.
따라서 이 글에서는 사용자 인증 정보에 해당하는 GitHub Access Token을 Git push 명령어에 포함시키는 방법을 적어둔다.
GitHub Access Token 생성
사용자 인증에 사용할 Token을 발급받는다.
1. GitHub Settings 페이지로 이동
GitHub에 로그인한 뒤 오른쪽 상단의 개인 메뉴에서 Settings를 클릭한다.
2. Developer settings로 이동
왼쪽 메뉴 맨 밑에 위치한 Developer settings를 클릭한다.
3. 왼쪽 메뉴 > Personal access tokens > Tokens (classic)으로 이동
4. Generate new token 클릭
이 글을 작성한 시점(2024-02-29) 기준으로 Beta 버전의 Generate new token 버튼이 존재하는데, 베타 기능이므로 기존 버전인 classic으로 선택했다.
5. Token 설정 및 생성
용도에 맞게 Token의 이름과 만료 기간, 권한을 지정하고 페이지 하단의 Generate token 버튼을 클릭한다.
6. 생성한 Token 값 확인
생성한 Token은 분실하지 않도록 잘 저장한다.
Push 하기
HTTPS URL로 Git 원격 저장소에 접근할 때, 사용자 인증 정보를 포함하는 경우에는 아래와 같은 형식을 사용한다.
https://USERNAME@GIT_URL
https://TOKEN@GIT_URL
https://USERNAME:TOKEN@GIT_URL
예로 들어 접근하고자 하는 원격 저장소의 정보가 다음과 같을 때,
생성한 Token 정보를 사용하여 접근하고 싶다면 아래와 같이 접근하면 된다.
https://TOKEN@github.com/jinyuo/branch_test.git
방금 생성한 Token 값으로 정상적으로 Push되는지 테스트해 보자.
위의 예시 저장소를 클론 받은 후 적당히 수정 commit을 생성했다. 그리고 기존에 사용하던 push 명령어에서 origin이라는 원격 저장소 이름 대신 token 정보를 포함한 원격 저장소 URL을 사용하여 push 한다.
# 기존 push 명령어
git push REMOTE BRANCH
# 예시 : Token 정보를 포함한 push 명령어
git push https://ghp_QZQ06wIiwNAviOtGf0i3S@github.com/jinyuo/branch_test.git \
b20220627
정상적으로 push가 잘 되었다.
Git remote URL 변경
만약 Push 명령어를 사용할 때마다 Token을 입력하는 게 싫다면 로컬 저장소의 원격지 정보에 Token을 추가하는 것도 방법이다.
git remote set-url origin https://TOKEN@GIT_URL
# 예시
git remote set-url origin https://ghp_QZQ06wIiwNAviOtGf0i3S@github.com/jinyuo/branch_test.git
참고 문서
[Github] 토큰 인증 로그인(Personal Access Token)