내가 속한 Organization의 레포에 오랜만에 push를 했는데,
Personal Access Token이 만료되어서 재로그인을 해야했다.
그런데 깃허브 username과 새로 발급한 토큰을 정확하게 입력해도 지속적으로
remote: Invalid username or password.
에러가 발생하였다.
토큰을 재발급해보고, Scope도 전부 선택해보고,
origin을 https://github.com/[path] 에서
https://[username]:[token]@github.com/[path] 형태로 바꾸기도 해봤지만 해결이 되지 않았다.
문제는 ~/.gitconfig 파일의 기본 설정이었다.
[http "https://github.com/"]
extraheader = AUTHORIZATION: basic <Base64 인코딩된 인증 정보>
위 설정을 통해 Git이 Github와 통신할 때, HTTP 요청에 Authorization 헤더가 자동으로 추가된다.
위 코드에 만료된 토큰이 들어가 있어서 지속적으로 문제가 발생,
삭제하고 다시 시도하니 해결되었다.
GitHub는 기본 인증 방식(Basic Authentication)을 더 이상 권장하지 않으며, HTTPS를 사용할 경우 Personal Access Token을 별도로 입력하는 방식을 더 추천한다.