
0. 들어가며
Springboot와 관련된 내용들을 테스트하고, 실험하는 개인 Repository가 있습니다. 대댓글 계층에 대해서 테스트해보고, 새롭게 생성한 파일들을 add -> push 하는 과정에서 발생한 문제에 대해서 글을 작성해보려고 합니다. 그렇게 큰 문제는 아니지만, 이 문제를 한 3~4번 경험했고, 그때마다 매번 구글링을 통해서 해결했는데요. 다음번에도 같은 문제가 발생했을 때, 구글링을 하지 않아도 스스로 해결하고 싶어 이렇게 정리하게 되었습니다.
1. 문제 상황
add -> push 하는 과정에서 발생한 오류 내용은 다음과 같습니다.
Username for 'https://github.com': bumnote
Password for 'https://bumnote@github.com':
remote: Invalid username or token. Password authentication is not supported for Git operations.
fatal: Authentication failed for 'https://github.com/Bumnote/spring-study.git/'
Username에 해당하는 것은 깃허브 Id를 뜻하는 것 같고, Password에 깃허브 비밀번호를 입력했습니다. 그런데, 사용자 이름 또는 "토큰"이 잘못되었다는 오류 내용이 나오네요. Authentication 즉, 인증에 실패했다는데요. 왜 Password를 적으라고 해놓고, "토큰"이 잘못되었다고 하는걸까요?
Token authentication requirements for Git operations
Beginning August 13th, 2021, we will no longer accept account passwords when authenticating Git operations on GitHub.com.
github.blog
위 깃허브 공식 블로그에서 다음과 같은 내용이 적혀있습니다.

해석해 보면 다음과 같습니다.
2021년 8월 13일부터 Git 작업 인증 시, 계정 비밀번호를 더 이상 허용하지 않으며, GitHub.com에서 이루어지는 모든 인증된 Git 작업에 대해 개인 액세스 토큰(PAT: Personal Access Token(개발자용)) 또는 OAuth 또는 GitHub 앱 설치 토큰(통합자용)과 같은 토큰 기반 인증을 사용해야 합니다. 원하시는 경우 SSH 키를 계속 사용하셔도 됩니다.
인증을 위해서 Password를 입력하라고 해놓고, 오류 내용에는 "Invalid username or token"이라고 나온 이유가 바로 이것이었습니다. 2021년 8월 13일부터 깃 작업 인증 시, 계정 비밀번호를 더 이상 허용하지 않는다고 하네요..
그럼 이 오류를 해결하기 위해서 토큰을 어디서 얻어야 하는 걸까요?
2. 해결 방법
PAT(개인 액세스 토큰)를 활용해서 이 문제를 해결해 보겠습니다.
2.1 PAT(classic) 토큰 발급
1. 가장 먼저 깃허브 홈페이지에 들어가서 Settings 버튼을 누릅니다.

2. 왼쪽 목록 중에서 가장 하위에 있는 "Developer settings"버튼을 누릅니다.

3. 왼쪽 목록 중에서 "Personal access tokens" -> "Tokens (classic)"버튼을 누릅니다.

저는 토큰을 이전에 만든 적이 있어 아래와 같은 화면이 나옵니다. 토큰이 어제 딱 만료가 되어서 오류가 발생한 것이었군요..

4. 토큰 생성 (재생성 방법 & 새롭게 생성하는 방법)
4.1 기존 토큰을 재발급하는 경우 -> 토큰 클릭해서 들어간 뒤, "Regenerate Token" 클릭

4.1.1 "Expiration" 유효 기간 설정

4.1.2 "Regenerte token" 버튼 클릭

4.1.3 생성된 token 복사

4.2 새로운 토큰 생성
4.2.1 "Generate new token" -> "Generate new token (classic)" 선택

4.2.2 Note, Expiration, scopes 설정 후, "Generate token" 클릭


저는 주로 터미널에서 Repository에 대한 코드 관리를 주로 하기 때문에 repo에 대한 설정은 모두 체크했습니다. 상황에 맞게 체크하시면 될 것 같습니다!
4.2.3 생성된 token 복사

"ghp~" 접두어로 새롭게 생성된 token은 복사를 해서 따로 저장을 해두시면 됩니다. 위 화면에서 새로고침하면 token을 다시 확인할 수 없기 때문에 반드시 저장을 해주세요!
2.2 PAT 토큰 입력
토큰을 재생성 또는 새롭게 만들어보았습니다. 이제 git add -> push 오류를 해결해 볼 건데요. 토큰만 넣어주면 돼서 간단하게 해결이 가능합니다.

Username 부분에는 본인의 깃허브 Id를 넣어주시면 되고, Password 부분에 발급한 토큰을 복사해서 붙여넣기 해주시면 됩니다. 그러면 인증이 완료되고, Repository에 push 작업이 성공적으로 이루어집니다.
3. 정리하며
여러 번 마주쳤던 오류이지만, 늘 구글링을 해서 해결했어야만 했던 상황을 타개하고자 글을 작성해 보았습니다. 확실히 단계마다 화면을 캡처하고 직접 설명을 덧붙이면서, 문제 해결 흐름이 머릿속에서 자연스럽게 구조화되는 경험을 할 수 있었습니다. 이전에는 “이렇게 하면 된다”는 결과만 기억했다면, 이제는 왜 이런 오류가 발생했고, 어떻게 접근해야 하는지를 이해하게 되었습니다.
앞으로도 개발하면서 이렇게 간단한 오류부터 어려운 오류까지 해결하는 과정을 step-by-step으로 작성하는 글을 업로드해보도록 하겠습니다. 읽어주셔서 감사합니다 :>
4. Reference
