주로 이클립스에서 git을 사용하는데 평소에 잘 돌아가다가 pull 과정에서 아래와 같은 오류가 뿜어져 나왔다.
이번 포스트는 위 문제의 원인과 해결책을 살펴보자.
git-upload-pack not permitted on XXX
문제의 원인
사실 그동안 github에서는 꾸준히 이런 일이 있을꺼라는 메일을 보내고 있었다. 내가 무시하고 있어서 그랬지...
Hi @quietjun,
You recently used a password to access the repository at quietjun/apshelper with git using JGit/5.12.0.202106070339-r.
Basic authentication using a password to Git is deprecated and will soon no longer work. Visit https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information around suggested workarounds and removal dates.
Thanks, The GitHub Team
즉 조만간 password를 이용한 인증은 지원하지 않을 계획이라고 열심히 알려왔다. 한글로 좀 알려줬으면 자세히 읽어봤을꺼 같은데 ㅎㅎ
앞으로는 Personal Access Token을 만들고 이를 이용해서 로그인 해야 한다.
토큰 만들기
Github 로그인 후 계정 정보에서 Settings > Developer settings로 이동 후 [Personal access tokens]에서 [Generate new token]을 선택한다.
note에 토큰의 용도를 적어준다. 다음으로 만료일을 적는데 90일로 해주었다. 만료가 되지 않는 설정도 있기는 한데 하도 위험한 짓이라고 겁을 주길래 그냥 90일로 해줬다. 필요하면 토큰은 계속 만들 수 있으니 큰 부담은 없었다.
설정 후 하단의 Generate 버튼을 생성하면 토큰이 생성된 것을 확인할 수 있다.
이제 비밀 번호 대신 방금 생성한 토큰을 이용해서 로그인 하면 된다. 주의할 점은 이 토큰은 두번 다시 볼 수 없기 때문에 여기서 복사(또는 어딘가 저장.. 이건 다시 보안에 위협적인가 ㅜㅜ)해 두어야 한다.
이클립스에서 로그인 하기
기존에 login 정보를 secure storage에 저장해 둔 경우라면 이를 변경해야 한다. 관리하는 프로젝트의 Team > Remote > Configure Push to Upstream으로 이동한다.
Configure push for remote 'origin' 화면에서 [change]를 클릭해서 기존 정보를 변경하자.
이제 Authentication의 Password 항목에 복사해둔 token을 적어주면 된다.