[Git] Permission denied, unable to access, publickey 에러

문제 상황

처음 프로젝트를 생성하고 첫 푸시를 할 때 항상 생기는 문제가 되었다.
Git access 접근 방식이 token으로 바뀌어서 매번 새 프로젝트를 팔 때마다 반복하는 일이 될 것이다.

문제 해결

작업을 하고 처음 git push를 했더니 아래의 에러가 떴다.

remote: Permission to user/repository-name.git denied to user.
fatal: unable to access 'https://github.com/user/repository-name.git/': The requested URL returned error: 403
  1. developer setting에서 token 생성
  2. 해당 프로젝트에 token 등록
  3. ssh key 등록

순으로 진행으로 해결했다.

1. Profile > Settings > Developer Settings

image image

다음 personal access tokens를 누른 뒤
image
이 화면에서 generate token을 해준다

2. 자격 선택

30개 정도 되는 접근 자격을 선택해야 한다.
이 모든 것을 read and write 와 같은 것으로 선택해야한다.
원하는 것들을 모두 선택해준다.
image 그러면 토큰이 생성된다. 나의 경우는 모든 자격에서 다 허락했다.

스크린샷 2023-09-14 오후 6 28 34 바로 나오는 이 페이지에서만 토큰을 볼 수 없다. 해당 페이지를 나가게 되면 토큰을 복사할 수 없다. 그래서 빠르게 복사한다.

3. (실패) 키 체인 등록

맥의 경우에는 키체인에 등록하는 방법이 있다고 해서 따라해보았다. 키체인 -> github 검색을 해서

스크린샷 2023-09-14 오후 6 33 31 위를 클릭해준다.

스크린샷 2023-09-14 오후 6 33 56
암호 보기를 하면 이렇게 암호를 입력하라고 하는데 맥에 로그인 시에 사용하는 암호를 입력하면 된다.

스크린샷 2023-09-14 오후 6 32 14
위에서 발급한 토큰을 여기에 입력하고 저장했다.
하지만 push는 되지 않았다

4. origin 등록시 token 올리기

git config --global user.email
git config --global user.name 

로 나의 이메일과 아이디가 맞는지 확인한 후에

git remote -v // origin 확인
git remote remove origin // origin 삭제

// 1번
git remote set-url origin https://{아까 발급받은 토큰}@github.com/{user이름이나 orginization 이름}/{repo 이름}.git
// 2번
git remote add origin https://{아까 발급받은 토큰}@github.com/{user이름이나 orginization 이름}/{repo 이름}.git

위의 명령어들로 origin 삭제, 확인, 등록 후 push 를 반복했다.
1번의 등록이 맞는지 2번의 등록 둘 다 되지 않았던 것 같다.

git remote add origin git@github.com:{user이름이나 orginization 이름}/{repo 이름}.git

을 해주니 된 것 같았지만 또 다른 에러가 떴다.

The authenticity of host 'github.com (---)' can't be established.
ED25519 key fingerprint is SHA256:+DiY
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

5. organization token 설정

나의 경우에는 organization에서 만든 repository여서 아래의 설정이 필요했다.

스크린샷 2023-09-14 오후 6 46 43 organization 프로필에서 세팅을 들어간다.

스크린샷 2023-09-14 오후 6 46 27
token 설정에 들어간다.

image
처음 설정한다면 이런 화면이 뜬다.

image image

정리하자면 fine-grained personal access token 이든, personal access token(classic)이든 상관없이
organization 접근을 허용한다고 설정해준다.

6. ssh key gen

ssh-keygen -t rsa -C "github에서 사용하는 email"

이후에 뜨는 파일 저장 위치나 비밀번호는 그냥 enter로 지나쳐도 되고 설정해도 된다.

image image image

해당 메뉴를 통해 ssh key를 등록하는 메뉴로 이동한다.

터미널에서 ssh key를 저장한 위치로 이동한 후

vim id_rsa.pub

를 통해 생성된 키를 확인한 후 복사하고 image
여기에 붙혀넣어 등록한다.

image 이렇게 되면 등록이 잘 된 것이다.

이제 push를 하니 겨우 된다..

Reference

Categories:

Updated:

Leave a comment