github permission denied 해결

이eun·2025년 1월 3일
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.

이 오류는 GitHub에서 SSH 키를 사용한 인증 문제가 발생했을 때 나타납니다. GitHub는 기본적으로 SSH 키를 통해 인증하며, 오류는 키가 설정되지 않았거나 올바르게 작동하지 않을 때 발생합니다.

다음 단계를 따라 문제를 해결하세요.

1. SSH 키가 설정되었는지 확인

터미널에서 아래 명령을 입력하여 SSH 키가 있는지 확인합니다:

ls -al ~/.ssh

출력에서 id_rsa와 id_rsa.pub(또는 다른 이름의 .pub 파일) 파일이 표시되면 SSH 키가 이미 생성된 상태입니다. 파일이 없다면 새로 생성해야 합니다.

2. SSH 키 생성

SSH 키가 없다면 아래 명령어로 새 키를 생성합니다:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

옵션 설명:
-t rsa: RSA 키 생성
-b 4096: 4096비트 길이
-C "your_email@example.com": GitHub 계정과 연결된 이메일 주소 사용
키 파일 생성 과정에서 저장 경로를 묻는다면 기본 경로(~/.ssh/id_rsa)를 사용하고 암호를 입력합니다.

3. SSH 에이전트에 키 추가

생성한 SSH 키를 SSH 에이전트에 추가합니다:

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

4. SSH 키를 GitHub에 추가

생성한 SSH 키의 공개 키를 복사합니다:

cat ~/.ssh/id_rsa.pub

GitHub에 로그인하고 다음을 수행합니다:

오른쪽 상단의 프로필 사진 → Settings → SSH and GPG keys.
New SSH Key 클릭.
제목(Title)을 입력하고 공개 키를 붙여넣기.

5. SSH 연결 테스트

SSH 키 설정이 완료되면 GitHub과의 연결을 테스트합니다:

ssh -T git@github.com

성공 시 다음과 같은 메시지가 출력됩니다:

Hi [GitHub username]! You've successfully authenticated, but GitHub does not provide shell access.

6. 원격 URL 확인 및 수정

원격 URL이 SSH 형식으로 설정되어 있는지 확인합니다:

git remote -v

출력이 다음과 같아야 합니다:

origin git@github.com:username/repository.git (fetch)
origin git@github.com:username/repository.git (push)

만약 HTTPS URL이 설정되어 있다면 SSH URL로 변경합니다:

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

7. 다시 시도

모든 설정을 완료한 후, 다시 Git 명령어를 실행합니다. 예:

git pull origin main
git push origin main

[ 추가 참고 ]
SSH 키는 개인 키(id_rsa)와 공개 키(id_rsa.pub)의 쌍으로 작동합니다. 개인 키는 절대 공유하지 마세요.
SSH 키가 제대로 작동하지 않는다면 ~/.ssh/config 파일을 생성하거나 수정하여 아래 내용을 추가하세요:

Host github.com
User git
HostName github.com
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes

이제 오류 없이 GitHub에 접근할 수 있을 것입니다! 😊

0개의 댓글