Profile picture

[Linux] git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.

JaehyoJJAng2023년 06월 18일

개요

깃허브에 내 개발 서버의 .pub 키를 등록하기 위해서

개발 서버로 접속 후 ssh-keygen 명령어를 사용하여 ssh 키 페어를 생성하고 https://github.com/settings/keys에 등록해주었다.
image

그런데 개발 서버에서 코드 업데이트 후 git push를 날려봐도 아래와 같은 에러가 계속 발생하였다.

에러 내용

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. 왜 이런 에러가 

해결 방법

키 페어도 정상적으로 생성했고, 생성된 .pub 의 내용을 https://github.com/settings/keys에도 정상적으로 등록 해줬는데도 push가 되지 않았음.

GPT에게 질문한 결과 아래 방법으로 해결할 수 있었다.


1. SSH 키 확인 및 관리

먼저 로컬 컴퓨터 또는 서버에 있는 SSH 키 확인.

ls -al ~/.ssh

2. SSH 키가 있는지 먼저 확인
만약 위 명령 실행 시 키 파일이 없다면 새로 생성.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/github_id_rsa

위 명령을 실행하면 SSH 키를 생성할 수 있는 프로세스가 시작됩니다. 그냥 엔터를 누르고 기본값을 선택하는 것도 가능합니다. 이렇게 하면 github_id_rsa 및 github_id_rsa.pub 파일이 생성됩니다.


3. git config 설정 확인
Git이 SSH를 사용하도록 설정되었는지 확인

git config --get remote.origin.url

결과가 다음과 같은 SSH URL인지 확인하자.

git remote set-url origin git@github.com:username/repository.git

만약 SSH URL이 아닌 HTTPS URL로 설정된 경우 SSH URL로 변경

git remote set-url origin git@github.com:username/repository.git

4. SSH 에이전트를 실행하여 키 추가

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Loading script...