본문 바로가기

Others

Git - 오늘부터 GitHub 인증이 안된다.

이슈 발생

git push를 하려고 보니 갑자기 아래와 같은 메시지가 출력된다.
credential.helper를 store로 설정하고 password 방식을 사용하고 있었는데
2021/8/13 이후로 password 방식이 deprecated 되어서 발생한 문제였다.

> git push origin step3
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.  
remote: Please see [https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/) for more information.  
fatal: unable to access "..." : The requested URL returned error: 403


git config --global credential.helper store 명령을 실행한 적이 있다면?
로컬에 패스워드를 그대로 저장하는 방식을 사용중인 것이다. 아래 명령을 통해 확인 가능하다.

> git config --global --list  
...
credential.helper=store
...


조치 방법

  1. 자격증명 날리기
    아래 글을 참고해서 로컬의 모든 인증정보를 날렸다.
    https://git-scm.com/book/ko/v2/Git-도구-Credential-저장소
    https://stackoverflow.com/questions/15381198/remove-credentials-from-git
    • .git-credentials 파일 삭제 ➡️ C:\Users\{USER_NAME}\.git-credentials 파일 삭제
    • 윈도우 자격 증명 제거 ➡️ [시작] - [검색] - [Windows 자격 증명 관리] - [git 관련 인증 모두 삭제]
  2. 로그인 시 토큰 입력
    이후에 다시 git push를 해보면 아래와 같이 나오는데 password에 personal-access-token을 넣어주면 된다. personal-access-tokenhttps://github.com/settings/tokens에서 발급 가능하다. 권한은 일반적으로 repo 권한을 모두 체크하면 된다.
    (메뉴 경로: GitHub - Settings - Developer settings - Personal access tokens)
    > git push origin step3
    Username for 'https://github.com': wrallee
    Password for 'https://wrallee@github.com': ...​

사실 위와 같이 뜨면 로컬 깃이 좀 오래된 버전인것이다.
깃 버전을 올리면 아래와 같이 브라우저가 토큰 발급을 알아서 해준다.
(credential.helper가 store일 경우 C:\Users{USER_NAME}\.git-credentials에서 확인 가능)


추가 조치

그래서 깃을 업데이트하기로 했다.
추가로 store는 인증정보를 단순히 평문으로 저장하기 때문에 보안성 강화를 위해 Git Credential Manager for Windows를 사용하기로 했다.

  • 깃 업데이트
  • > git update-git-for-windows
  • credential.helper 변경
  • > git config --global credential.helper manager-core
  • .git-credentials 파일 삭제
    C:\Users{USER_NAME}\.git-credentials 파일 삭제

이제 사용자 폴더에 .git-credentials 파일이 생성되지 않는다.

추추가 조치

위와 같이 credential.helpermanager-core로 바꾸고 아래 메시지가 출력되었다.

> git push
git: 'credential-manager-core' is not a git command. See 'git --help'.

알고 보니 업그레이드를 했음에도 실제로는 예전에 깔아둔 포터블 버전을 사용중이었다. 자세한 내용은 아래 글을 참고했다.
https://github.com/microsoft/Git-Credential-Manager-Core/issues/144

> git --exec-path 
E:/Development/PortableGit/mingw64/libexec/git-core

시스템 환경 변수 편집 > 환경 변수 > 시스템 변수 - Path
E:\Development\PortableGit\binC:\Program Files\Git\bin

> git --exec-path  
C:/Program Files/Git/mingw64/libexec/git-core

이제 제대로 사용할 수 있다.

'Others' 카테고리의 다른 글

USB 없이 Ubuntu 재설치 하기  (0) 2021.03.14
OpenVAS 환경 구성  (0) 2020.06.17
AWS EC2 & RDS  (0) 2020.05.17
안드로이드폰으로 리눅스 서버 만들기  (1) 2020.04.05
Ubuntu Apache 웹 서버 띄우기  (0) 2020.03.29