활용하기

[Git] 개인 액세스 토큰을 사용하여 사용자 인증 진행하기

GitHub 저장소에 접근하려면 해당 저장소를 읽고 쓸 수 있는 권한을 가진 사용자임을 확인하기 위한 사용자 인증 과정이 필요합니다.

일반적으로 GitHub의 계정 정보인 ID와 암호(Password)를 제공하거나 서버에 등록된 SSH 키를 사용하여 인증이 가능하지만, 첫번째 암호 인증에서 계정의 암호 대신 개인 액세스 토큰(Personal Access Token)을 사용한 사용자 인증 방법이 있습니다.

이 방법은 주로 계정이 2FA (Two-Factor Authentication) 사용자 인증을 사용하는 경우에 활용됩니다. 2FA는 OTP, SMS 인증과 같은 추가 인증을 요구하는 방법을 뜻합니다.

 

GitHub 인증을 위한 개인 액세스 토큰 생성하기

액세스 토큰을 생성하기 위해서는 먼저 GitHub 웹 페이지에 접속한 후 계정 로그인이 필요합니다.

다음 링크에서 GitHub 로그인을 완료합니다.

https://github.com/login

만약 이 계정이 가입한지 얼마 안되었고 이메일 본인 인증이 완료되지 않았다면, 반드시 이메일 인증을 완료해야 합니다. (다음 링크 참고 : https://help.github.com/en/articles/verifying-your-email-address) 이미 이메일 인증을 하셨다면 넘어가셔도 좋습니다.

 

로그인이 완료되었다면 우측 상단 메뉴의 자신의 프로필을 클릭한 후 ‘Settings’ 메뉴를 클릭합니다.

 

Settings 페이지의 좌측 메뉴 하단 부분에 있는 ‘Developer Settings’ 메뉴를 클릭합니다.

 

이후 마찬가지로 좌측 메뉴에 있는 ‘Personal access tokens’ 메뉴를 클릭합니다.

 

Personal access tokens 페이지에 도달했다면, 우측에 있는 ‘Generate new token’ 버튼을 클릭합니다.

 

계정을 확인하는 로그인 창이 나타납니다. 다시 한 번 현재 계정의 암호를 입력해줍니다.

 

이제 특정 권한을 부여받을 수 있는 액세스 토큰을 생성해볼 수 있습니다.

토큰을 생성하기 위해서는 다음 입력란을 채워야 합니다.

  • Note : 이 토큰에 대한 간단한 설명을 입력합니다.
  • Select scopes : 이 토큰을 사용하여 인증할 때 부여할 권한을 지정합니다.

GitHub 저장소에 대한 접근 권한만 필요하다면, ‘repo’ 의 체크박스를 모두 체크해주시면 됩니다. (필요에 따라 하위 체크박스 중 일부를 빼셔도 됩니다.) 아무래도 모든 권한을 주는 것 보다는 정말 필요한 것들만 체크하는 것이 좋을 것 같습니다.

 

Generate token을 클릭하면 다음과 같이 액세스 토큰이 발급 될 것입니다. 복사하여 따로 저장해둡니다.

 

 

발급받은 액세스 토큰 사용하기

이제 생성한 토큰이 정상 동작하는지 확인해보도록 하겠습니다. git push 명령어를 사용하여 commit이 완료된 변경사항을 저장소 서버로 업로드해보겠습니다.

이전과 동일하게 계정의 ID와 암호를 묻게 되지만, 암호 대신에 방금 전에 생성한 토큰을 붙여넣어주시면 됩니다.

  • Username : 사용자 계정 아이디
  • Password : 발급받은 액세스 토큰
[user@localhost html]$ git push
Username for 'https://github.com': example@gmail.com
Password for 'https://example@gmail.com@github.com': 
Counting objects: 2289, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (1567/1567), done.
Writing objects: 100% (1577/1577), 38.45 MiB | 7.15 MiB/s, done.
Total 1577 (delta 735), reused 0 (delta 0)
remote: Resolving deltas: 100% (735/735), completed with 648 local objects.
To https://github.com/example/example.git
   d44b958..0dd57ed  master -> master

매번 이 토큰을 일일히 입력할 수는 없으므로 로그인 스크립트 등을 사용하여 토큰 인증을 빠르게 대체하는 방법을 사용해야 할 것입니다.

이렇게 액세스 토큰을 사용하여 정상적으로 저장소에 접근할 수 있습니다.

JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

View Comments

  • 감사합니다 ㅠㅠㅠㅠ 깃....짜증나는데 안 쓸 수도 없고... 덕분에 오류 해결해서 무사히 푸쉬 했습니다!

Recent Posts

[iOS] Xcode ‘You do not have required contracts to perform an operation’ 해결

Xcode에서 iOS 애플리케이션을 빌드(Archive)하고 App Store Connect에 앱을 업로드하는 도중, 아래와 같은 에러가 발생하면서 더…

2개월 ago

[안드로이드] INSTALL_FAILED_INSUFFICIENT_STORAGE 해결

INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…

7개월 ago

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

9개월 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

9개월 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

9개월 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

9개월 ago