github token을 재발급한 이후로 403 오류로 인해 CLI 환경에서 아무런 작업도 할 수 없었다. 한동안 급한대로 IDE와 깃헙 데스크탑에 의존하다가, 삭제된 옛날 토큰이 키체인에 캐시된 것이 원인임을 파악해서 해결 과정을 공유하려고 한다.
config를 수정한 경우에도 키체인을 재생성해야하기 때문에 동일한 과정을 거쳐야한다.
*OS keychain이란...
Mac에서 사용자의 암호 및 계정 정보를 저장하기 위해 사용하는 앱. Window에서는 Credential Manager가 같은 역할을 한다.
1. 웹페이지에서 자격 확인
실제로 권한이 없어서 403 오류가 발생했을 수 있으므로 다시 한번 토큰에 잘못이 없다는걸 확인해주자.



개인 토큰은 우측 프로필의 Setting > 좌측 사이드바 최하단의 Developer Setting > Personal token 에서 확인할 수 있다.
아래쪽에 Expires on ~ 하고 토큰의 만료일이 표시되는데, 이 날짜가 지나지는 않았는지, write 권한이 빠지지는 않았는지 유심히 봐야한다.
만약 팀 repository에서 작업을 하고있다면 해당 repository에서의 권한도 추가로 확인해준다.


repository의 Settings > 좌측 Collaborators and teams을 선택하면 멤버별 접근 권한을 조회할 수 있다.
사실상 Setting이 보인다는 것은 Admin 권한이 있다는 뜻이다.
Setting 탭이 보이지 않는다면 관리자에게 권한 확인을 요청하자. Admin, Maintain, Write 모두 코드를 수정하는 데에는 문제가 없다.
2. 기존 키체인 삭제
키체인 삭제에는 두가지 방법이 있다.
1) Keychain Access에서 삭제

Command + Space로 Spotlight를 켠다음 키체인 엑세스를 실행한다.
검색창에서 github에 해당하는 토큰들을 모두 지워준다.
2) git 명령어 사용
$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]
git credential-oskeychain erase를 먼저 입력한 후, 아래 나오는 옵션을 하나씩 눌러준다.
삭제가 끝났다면 아무 로컬 repository나 들어가서 상태를 확인해준다.
$ git fetch origin
Username for 'https://github.com':
아마 아무 정보도 저장되어있지 않아 이렇게 수동으로 입력하는 창이 뜨게될 것이다.
3. 새로운 키체인 생성
이대로 매번 토큰을 수동으로 입력하며 사용할 수도 있지만 너무 귀찮으니 다시 키체인을 생성해준다.
먼저 credential helper를 확실히 oskeychain으로 설정해준다.
$ git config --global credential.helper osxkeychain
다시 아무 git repositoy로 이동해서, 아무 remote 작업을 수행하고 로그인한다.
$ git fetch origin
Username for 'https://github.com': 유저네임
Password for 'https://유저네임@github.com': 토큰입력
이제 keychain이 토큰을 기억해서 별다른 인증 없이 remote 작업을 수행할 수 있다.
혹시 계속 비밀번호를 입력하는 방식으로 바꾸고 싶다면 Git - Credential 저장소 문서를 참고해서 옵션을 바꿔주면 된다.
참고자료
'기타 툴 > Git' 카테고리의 다른 글
Git 파일의 네 가지 상태 - Untracked, Unmodified, Modified, Staged (0) | 2022.10.04 |
---|