로컬에서 GitHub 원격 저장소로 git push를 실행했을 때 Permission denied (publickey) 오류가 발생하면 SSH 키가 제대로 설정되지 않았거나 GitHub에 등록되지 않은 경우가 많습니다.. 아래 과정을 따라 문제를 해결하고 성공적으로 원격 저장소에 연결하는 방법을 정리하였습니다.
Git을 처음 설정하는 경우, 사용자 정보를 설정해야 한다.
git config --global user.email "leejken530@naver.com"
git config --global user.name "2JAE22"
설정이 잘 되었는지 확인하려면:
git config --list
출력 결과 예시:
user.email=leejken530@naver.com
user.name=2JAE22
SSH 키가 존재하는지 확인:
ls -al ~/.ssh
만약 id_rsa 및 id_rsa.pub 파일이 없다면, SSH 키를 생성해야 한다.
ssh-keygen -t rsa -b 4096 -C "leejken530@naver.com"
Enter file in which to save the key (/home/username/.ssh/id_rsa): → 그냥 EnterEnter passphrase (empty for no passphrase): → 그냥 EnterEnter same passphrase again: → 그냥 EnterSSH 에이전트를 실행하고 키를 추가한다.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
추가된 키를 확인하려면:
ssh-add -l
SSH 공개 키를 확인하고 복사한다.
cat ~/.ssh/id_rsa.pub
출력된 내용을 복사한 후, GitHub에서 다음 경로로 이동하여 등록한다.
Title 입력 후, Key 부분에 복사한 SSH 키 붙여넣기GitHub과 연결을 확인하려면:
ssh -T git@github.com
출력이 아래처럼 나오면 정상적으로 연결된 것이다.
Hi 2JAE22! You've successfully authenticated, but GitHub does not provide shell access.
GitHub 원격 저장소를 SSH 방식으로 설정했는지 확인한다.
git remote -v
출력 예시:
origin git@github.com:2JAE22/paper_VLM.git (fetch) origin git@github.com:2JAE22/paper_VLM.git (push)
만약 HTTPS 방식(https://github.com/...)으로 되어 있다면 SSH 방식으로 변경한다.
git remote set-url origin git@github.com:2JAE22/paper_VLM.git
이제 로컬 커밋을 원격 저장소로 푸시할 수 있다.
git push -u origin main
정상적으로 푸시가 완료되면 다음과 같은 메시지가 출력된다.
Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 223 bytes | 223.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To github.com:2JAE22/paper_VLM.git
[new branch] main -> main Branch 'main' set up to track remote branch 'main' from 'origin'.
이제 SSH를 통해 GitHub 원격 저장소와 원활하게 연동할 수 있다! 🚀