깃허브는 멀티팩터 인증(MFA, Multi-Factor Authentication)을 지원합니다. 계정 보안을 위해서는 꼭 2단계 인증 등을 해주는게 좋은데요, 저는 구글 인증기(google authenticator)를 연동해 사용하고 있습니다.

깃허브 계정이 MFA를 사용중일 때 커밋을 푸시하려면 계정, 비밀번호로는 안됩니다. 토큰을 만들어줘야 하는데 이번 게시물에서는 개인 액세스 토큰(Personal access token)을 만들어서 로그인을 진행하는 방법에 대해 알아보겠습니다.

github MFA 이용시 토큰 생성 방법

 

Github 개인 액세스 토큰 생성 및 로그인 방법

$ git push -u origin master
Username for 'https://github.com': example
Password for 'https://example@github.com':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/~~/~~.git/'

이렇게 push했는데 Authentication failed가 나오면 유저명을 잘못 입력했거나, 비밀번호가 틀렸거나, 아니면 MFA 설정이 되어 있는 겁니다.

MFA 설정이 되어있으면 비밀번호만으로는 깃헙 액세스가 안되고, 액세스 토큰을 만들어야 합니다. 

 

깃허브 개발자 설정

Settings - Developer settings로 들어갑니다.

 

깃허브 개인 액세스 토큰 목록

개인 액세스 토큰(Personal access tokens) 탭으로 들어가면 지금까지 만들어진 개인 액세스 토큰 목록을 확인할 수 있습니다. 처음 들어가봤다면 아무것도 없겠죠?

오른쪽 위에 "Generate new token" 버튼을 눌러줍니다.

깃허브 새 개인 액세스 토큰 만들기

여기서 새 액세스 토큰의 권한을 설정할 수 있는데요, 여러가지가 있으니 잘 읽고 선택해보시기 바랍니다.

그냥 push, pull, commit 등 기능을 몇 개 안쓸거면 repo만 체크해줘도 무방합니다. 나중에 권한이 부족하다 싶으면 액세스 토큰을 다시 만들면 됩니다.

설정을 다 했다면 맨 밑에 "Generate token" 버튼을 누릅니다.

깃허브 개인 액세스 토큰 복사

그럼 이제 토큰이 생성되었는데요, 이 토큰은 생성할 때 한 번만 보여주니 이걸 다른 곳에 저장해두시기 바랍니다.

원격에서 깃허브로 개인 액세스 토큰을 이용해 push 하는 모습

이제 git에서 계정을 입력할 때 비밀번호에 아까 복사해놨던 토큰을 입력하면 됩니다. 위 사진은 원격에서 개인 액세스 토큰을 사용해 push 하는 모습입니다.

혹시 토큰을 잊어버렸다면 지우고 다시 만들면 됩니다.