본문 바로가기
git (협업 툴) 사용법 정리

Git : github 개인 엑세스 토큰 발급 / Git Crediential을 이용하여 원격저장소에 처음 한번만 로그인하도록 계정정보 캐싱

by 번데기 개발자 2022. 4. 11.
반응형

 

Github의 인증 정책 변경

 

github는 2021년 08월 13일부터 인증정책을 변경하여 개인 Github ID, Password를 통해 원격 저장소의 push와 같은 명령을 막고, 개인 Access Token을 발급받거나, SSH를 통한 원격 저장소 변경만 허용하도록 정책을 바꾸었습니다.

 

github 정책 변경 (2021.08.13)

실제로 ID / Password를 통해 서버 push를 테스트해보면 아래와 같은 에러가 발생합니다.

 

Github ID / Password Push 시 발생하는 403에러

오늘은 ssh와 Personal Access Token을 이용한 github 인증 환경 구성 방식 중에 Personal Access Token을 발급받는 방식을 알아보겠습니다.

 

 

 

Github로  개인 Access Token 발급받기

 

 

일단 Github에서 Access Token을 받기 위해서 github 페이지로 이동하여

 

우측 상단 프로필의 Settings => Developer Settings => Personal acess token => Generate new token 

 

위 순으로 이동하여 발급받으시면 됩니다.

 

이제, 발급받은 토큰을 github계정의 Password로 사용하면 원격저장소에 접근하는 작업을 처리할 수 있습니다.

 

 

 

Git crediential을 이용하여 개인 Access Token 커널에 캐시하기

 

토큰을 얻어와서 github 원격 저장소에 push는 할 수 있게 되었지만, 막상 작업을 하다 보면 원격 저장소로 push 또는 pull을 할 때마다 github 아이디와 Access Token을 매번 입력해줘야 하기 때문에 번거롭습니다.

 

이때 git crediential을 이용하여 맨 처음 github 아이디와 Personal Acess Token을 처음 한 번만 입력하면 이후로 다시 입력을 안 해도 되도록 설정해줄 수 있습니다.

 

git의 crediential이란 말 그대로 계정 정보를 의미합니다. 

 

저장소에 push / pull을 할 때마다 해당 저장소를 이용할 수 있는 권한이 필요한데, crediential에 계정 정보를 저장해 놓으면 저장소를 이용할 때마다 로그인할 필요가 없게 됩니다.

 

실제 사용은 아래와 같습니다.

 

$ git config credential.helper store # 위 명령을 수행후 push 또는 pull을 수행
$ git push http://example.com/repo.git # 맨 처음은 ID와 토큰이 필요
Username: <type your username>
Password: <type your password>
[... time goes on ...]
$ git push http://example.com/repo.git # 이후에는 자동으로 원격 저장소 접근 가능

 

또는 creidential.helper에 다음과 같이 cache 시간을 초단위로 지정할 수도 있습니다.

 

$ git config --global credential.helper 'cache --timeout=3600' // 1시간 동안 캐시 유지

 

 

마무리

 

지금까지 간단하게 Access Token을 발급받고, Git credintial로 계정 정보를 캐싱하여 사용하는 방법을 알아보았습니다.

 

정책 변경이 된지는 꽤 시간이 흘렀지만 혹시 모르실 수도 있는 분들을 위해 정리하였습니다.

 

Github 관련 글들은 시간이 날 때마다 정리해서 올릴 예정입니다. 

 

감사합니다.

 

 

참고

 

 

Token authentication requirements for Git operations | The GitHub Blog

Beginning August 13th, 2021, we will no longer accept account passwords when authenticating Git operations on GitHub.com.

github.blog

반응형