본문 바로가기
코딩/개발도구(Git, VS Code, etc)

Git Push 오류(Authentication failed)가 날 경우

by 나홀로코더 2021. 11. 14.
반응형

서론

※ 시간이 없으면 바로 본론으로!

 

얼마 전 삼성 노트북에 설치돼 있는 Samsung PC Cleaner에 타임라인 기능이 있는 것을 알게 되었다.

 

요약하자면, 노트북에 새로 프로그램이 설치되는지를 모니터링하고, 자동으로 백업 지점을 만들어줘서 내가 원하면 그 지점으로 돌아갈 수 있게 해주는 것이다.

 

최근 이것저것 설치한 것이 많았기 때문에 시험삼아 한번 복원 기능을 써봤다가 낭패를 보고 있는데, 오늘은 그동안 잘만 되던 Git Push가 갑자기 안 되었다.

 

한참을 씨름하다 겨우겨우 해결했는데, 아래와 같이 하니 정상적으로 작동이 된다.

 

본론

 

증상은 아래와 같다.

 

필자는 Visual Studio Code(VS Code)를 사용하는데, VS Code의 소스 제어 메뉴에서 푸시하려 하니 아래 메시지가 나오면서 실패한다.


> git push origin main:main 

remote: Repository not found. 

fatal: Authentication failed for 'https://github.com/{ID}/{REPOSITORY NAME}/'


 

하지만 같은 커밋을 Github Desktop에서 푸시하면 문제 없이 푸시가 된다.

 

처음에는 VS Code에서 발생한 문제인가 싶어, VS Code에서 Github 계정 로그아웃(sign out)하기 등등 구글 검색해서 나온 온갖 방법을 다 해봐도 소용이 없다.

 

VS Code가 문제가 아닌 듯한 생각이 들어 커맨드 라인에서 git push 명령어를 입력해보니, 같은 오류 메시지가 나온다.

 

그렇다면 VS Code에서 생긴 문제가 아니다.

 

키워드를 조금 바꿔 검색해보니, Git에서 어딘가에 저장해두고 Github 접근에 사용하고있을 내 Github ID와 PW 정보가 잘못된 것 같다.

 

해결 방법은 아래와 같다.

 

커맨드 라인에 아래 명령어를 순서대로 입력한다.


git remote remove origin

git remote add origin https://{ID(e-mail address)}:{ACCESS TOKEN}@github.com/{ID}/{REPOSITORY NAME}

git push --set-upstream origin main


**중요 포인트**

 

1. add origin 부분이 조금 헷갈릴 수 있는데, 중괄호 표시한 부분은 실제 입력할 때는 괄호 없이 입력한다.

 

2. ID가 이메일 주소이므로 @ 표시가 포함되어 있는데, @ 표시는 %40으로 바꾸어 입력한다.

(왜 @가 %40가 되는지 궁금하면 ASCII 테이블을 검색해보면 되고, github.com 앞에 있는 @는 그냥 두는 것이 맞다.)

 

3. ACCESS TOKEN의 경우, 과거에는 비밀번호를 입력해도 됐으나 정책 변경으로 현재는 ACCESS TOKEN을 사용하게 하고 있다고 한다.

 

ACCESS TOKEN은 아래 경로로 들어가 만들 수 있다.

 

Github 로그인하면 우측 상단에 메뉴가 있다. 제일 오른쪽에 있는 세모 표시를 누르고 Settings를 선택한다.

 

Settings 위치

 

좌측 메뉴에서 Developer settings > Personal access tokens로 들어가 Generate new token을 선택한다.

 

필요한 정보를 입력하면 토큰이 생성되고, 생성된 토큰을 복사해 사용하면 된다.

 

위 세번째 명령어까지 입력한 뒤에 다시 git push를 해보면 정상적으로 실행된다.

 

마무리

 

호기심에 복원 기능을 사용해봤다가 하루에 하나씩 난관을 마주치고 있다.

 

앞으로는 절대 복원 기능을 사용하지 않을 계획이다.

 

 

반응형

댓글