Tech/Docker

[Git] git permission denied (publickey) 해결 방법 : 내 repository가 아닐 때 ssh key 등록 방법

은가 2022. 7. 26. 10:38

 

 

git clone을 하려고 했는데 다음과 같은 에러 메시지가 떴다.

Cloning into 'gbplanner_ros'...
Warning: Permanently added the ECDSA host key for IP address '15.164.81.167' 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.

 

 

 

 

문제의 원인은 ssh key를 등록하지 않아서인데,  `~/.ssh/id_rsa.pub` 파일에 저장된 key를 복사해 와야 한다.

그리고 clone하려는 해당 repositoy의 계정에 로그인 해서, Setting - SSH key에 복사 붙여넣기 해 주어야 한다.

따라서 현재로서는 자신의 repository가 아닌 clone을 할 경우, git@github.com처럼 ssh key로는 접근을 할 수 없다는 뜻이다.

 

 

 

 

일단은 https://github.com 을 이용해서 clone하면 문제는 없기에, 쉬운 방법으로 해 주었다.

 

 

 

또 다른 해결 방법 중 하나는, repository를 fork해와서 나의 github에 심는 것이다.

모든 repository의 우상단에 보면 Fork 기능이 있고, 지금까지 몇 명의 사람들이 이 저장소를 퍼갔는지가 나타난다 (인기의 척도....)

 

 

Fork가 성공적으로 끝나면 내 github에 동일한 이름의 repository가 나타난다.

이제 아래 명령어를 이용하여 ubuntu에서 ssh-key를 만들어 내 github 사이트에서 key로 등록해 주면 된다.

ssh-keygen -t rsa -C "[your_github_email_address]"

 

 

 

 

key가 저장되는 파일의 위치는 보통 `/root/.ssh/id_rsa.pub`이고, 처음에 이를 설정할 수 있는 기회를 준다.

딱히 변경하고 싶지 않다면 그냥 Enter 를 누르면 된다.

passphrase같은 경우도, 딱히 지정해 줄 필요가 없기 때문에 두 번 다 Enter를 눌러 주었다.

 

 

 

아래 명령어로, 생성된 ssh 키를 확인하고 email 주소를 제외한 "ssh-rsa" 부터 "=" 까지 모두 복사해 준다.

이 때 만들어지는 key는 "내 github에 접근할 수 있는 권한을 부여할 열쇠"이므로 공개되지 않도록 주의 !

cat ~/.ssh/id_rsa.pub

 

 

 

이제 인터넷에서 내 github 페이지로 들어간다.

우상단의 동그란 프로필 아이콘 - Settings - 좌측메뉴바 SSH and GPG keys - New SSH key(초록 버튼) 을 누르고,

Title(key를 어디에서 사용하는지 등)과 복사한 Key를 넣어 준다.

 

 

 

아래와 같이 key가 하나 생성 되었다 !