본문 바로가기
개발/Git

Git 작업시 personal access token 에러

by 김첨지 2023. 6. 20.

 

Fine-grained personal access token (Beta)

remote: Personal access tokens (classic) are forbidden from accessing this repository. fatal: unable to access 'https://github.com/inu-appcenter/2023-1st-semester-ps-study/': The requested URL returned error: 403

 

어느 날 갑자기 특정 repository에 push가 되지 않았다.

기존에 사용하던 personal access token에 문제가 생겼다고 판단하여, 여러 번 재설정해봤지만 결과는 똑같았다.

그러다 문득 Generate new token에서 이상함을 느꼈다.

 

 

Generate new token Beta과 Generate new token classic 

그리고 에러 메시지에서의 Personal access tokens (classic)

 

별생각 없이 Generate new token classic을 사용했었는데, PAT(classic)는 이 레포지토리에 액세스 할 수 없다는 에러 메시지가 이해가 가기 시작했다.

 

Generate new token Beta를 이용해 토큰을 생성해보기로 했다.

 

 

Token name를 임의로 설정하고, 만료 기한을 최대로 하였다.

Repository access에서는 All repositories로 설정해 주었다.

 

 

나의 경우 권한을 모두 허용해 주었지만,

각자의 필요에 따라 접근 가능하게 설정해 주면 된다.

 

 

Personal access token 적용

그렇게 생성한 토큰을 복사해서

 

키체인 접근에서 github.com을 찾아 암호에 넣어준다.

암호 보기 클릭 시 나오는 암호는 맥 부팅 비밀번호를 입력한다.

윈도우의 경우 제어판 -> 자격증명관리에서 똑같이 처리해 준다.

 

다시 push를 하면

 

remote: Permission to inu-appcenter/2023-1st-semester-ps-study.git denied to Leejha. fatal: unable to access 'https://github.com/inu-appcenter/2023-1st-semester-ps-study/': The requested URL returned error: 403

 

해당 레포지토리에 권한이 없다는 새로운 에러 메시지가 나타났다.

 

organization settings

토큰 생성 시 레포지토리 권한을 빠트렸나?

아니면 토큰을 잘못 입력했나

초기화하고 다시 만들고 적용하고를 반복했지만 해결되지 않았다.

그런데 다른 레포지토리에서는 문제없이 돌아가고, 특정 레포지토리에서만 에러가 발생한다는 게 이상했다.

심지어 다른 컴퓨터에서 Git Credential Manager로 인증하니 문제없이 돌아가고, PAT 방식을 이용하니 똑같은 에러가 발생했다.

 

해당 레포지토리에서 owner 권한을 임시로 얻어 organization settings을 확인해 봤다. 

 

 

fine-grained personal access token의 경우 allow access 되어있었고, 

personal access tokens (classic)의 경우 restrict access 되어있었다.

 

도저히 해결될 것 같지 않았던 문제의 원인을 드디어 파악할 수 있었다.

 

 

fine-grained personal access token을 생성하는 곳에서 Resource owner를 해당 올가니제이션으로 바꾸면 문제가 해결될 것이라고 판단했다.

하지만 해당 올가니제이션을 접근할 때마다 키체인 설정에서 토큰값을 바꿔주는 작업을 해야 한다는 게 너무 번거롭다는 생각이 들었다.

 

올가니제이션에서 다시 personal access tokens (classic)으로도 접근할 수 있도록 요청하고, 

personal access tokens (classic)을 키체인 설정에 등록해 주었다.

 

감격의 순간

 

마치며

도저히 해결될 것 같지 않은 문제를 맞닥뜨렸을 때 과정은 너무 힘들지만, 그만큼 배우는 건 많다. 아직 베타버전이지만, fine-grained personal access token의 존재도 알게 되고, git 작업 시 발생할 수 있는 인증 관련 에러 모두 해결할 수 있을 것만 같은 자신감이 생겼다.

 

Reference

https://docs.github.com/en/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization#enforcing-an-approval-policy-for-fine-grained-personal-access-tokens

 

Setting a personal access token policy for your organization - GitHub Docs

Organization owners can control whether to allow fine-grained personal access tokens and personal access tokens (classic), and can require approval for fine-grained personal access tokens.

docs.github.com

 

'개발 > Git' 카테고리의 다른 글

Git 작업 복구  (0) 2023.05.01
github에서 contributor되기  (0) 2022.04.13