ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 깃허브 2FA Personal Access Token 사용하기
    Knowledge 2019. 7. 20. 16:48

     

    GitHub Logo

    깃허브를 사용하고 있던 어느날 갑자기 되던 git clone, git pull 명령이 작동하지 않았다. 암호가 틀렸거나 오타가 났다고 생각해서 여러 시도했지만 여전히 “Invalid username or password”라는 에러가 반복해서 나올 뿐이었다.

     

    잠시 생각해보니 얼마 전에 외부 요청을 받아 2FA(Two Factor Authentication) 설정했던 기억이 났다. 모바일폰 번호를 등록했던 같은데, 혹시나 싶어 찾아보니 역시 때문에 에러가 것이었다. 자세한 에러 메시지가 나왔다면 쉽게 알아챘을텐데, 범용 git client이다보니 패스워드가 틀렸다는 메시지만 반복적으로 나왔던 것이다.

     

    2FA 사용할 경우 다음과 같은 차이가 나타난다.

    2FA 미사용시 Username GitHub 사용자 이름
    Password GitHub 패스워드
    2FA 사용시 Username GitHub 사용자 이름
    Password GitHub Personal Access Token

     

    , 패스워드 대신Personal Access Token 사용해야 git 명령을 수행할 있는 것이다. Personal Access Token 깃허브 웹사이트에서 다음과 같은 방식으로 만들 있다. (참조)

     

    1.  깃허브 계정에 이메일이 Verify 상태가 아니라면 이메일 Verify 먼저 해준다. (참조)

     

    2. 깃허브 우상단의 프로필 사진을 누르고 Settings 메뉴를 선택한다.

     

     

    3. 왼쪽 사이드바에서 Developer Settings 메뉴를 선택한다.

     

    4. 왼쪽 사이드바에서 Personal Access Token 메뉴를 선택한다.

     

    5. Generate New Token 버튼을 클릭한다.

     

    6. 토큰에 대한 설명을 입력한다. 나중에사용자가 토큰을 구분하기 위한 용도이다.

     

    7. 토큰의 작동 범위와 권한을 설정한다. Git 명령 수행을 위해서는 repo 권한 전체를 선택해준다.

     

    8. Generate Token 버튼을 누른다.

     

    9. 토큰 생성 완료. 화면에 표시되는 토큰을 복사해서 사용한다. 깃허브 접근시 패스워드와 같은 개념이므로 보안에 유의해서 저장해 둔다.

     

    이제 생성된 토큰을 사용해서 Git 명령을 수행할 있다. 예를 들어 깃허브의 username iamuser이고, 토큰이 abcdefghijklmnop, 가져오려는 repo myrepo라면 다음과 같은 커맨드를 수행한다.

     

    git clone https://iamuser@github.com/iamuser/myrepo.git

     

    연결이 성공하면 커맨드나 GUI 통해 패스워드를 물어볼텐데 여기에 abcdefghijklmnop 입력한다. 사실 다음과 같이 줄로 가져가는 것도 가능하다.

     

    git clone https://iamuser: abcdefghijklmnop@github.com/iamuser/myrepo.git

     

    하지만 정보는 bash  shell 캐시에 저장되므로 토큰이 노출될 가능성이 있다는 점을 유념하여야 한다.

     

     

    Fin.

     

    반응형

    댓글

Calvin's Memo