GitHub를 사용하다 보면 아무 문제 없이 잘 되다가 갑자기 push가 안 되는 경험을 종종 하게 됩니다. 저도 최근에 갑자기 GitHub에 push가 안 돼서 당황했는데요, 검색해서 해결 방법을 찾느라 시간을 꽤 많이 썼습니다. 저처럼 당황하지 않으시도록, 실제로 경험한 대표적인 GitHub push 에러 두 가지와 해결 방법을 간단히 정리했습니다.
Permission denied (403)
먼저 제가 겪었던 첫 번째 에러는 "Permission denied (403)" 메시지였습니다.
이 에러는 보통 이런 식으로 나타납니다.
remote: Permission to 사용자명/저장소명.git denied to 계정명.
fatal: unable to access 'https://github.com/사용자명/저장소명.git/': The requested URL returned error: 403
주로 내 컴퓨터에 저장된 GitHub 계정 정보가 꼬였을 때 생기는데, 다른 GitHub 계정으로 로그인했던 기록이 남아있으면 이런 현상이 발생할 수 있습니다.
이럴 땐 윈도우의 '자격 증명 관리자'를 실행해서 'Windows 자격 증명'에서 일반 자격 증명에 있는 GitHub 관련 항목들을 모두 삭제한 후 다시 push를 하면 대부분 해결됩니다.
Permission denied (publickey) 오류
다음으로 흔하게 발생하는 두 번째 에러는 SSH 키와 관련된 "Permission denied (publickey)" 오류입니다. 보통 아래 메시지로 나타납니다.
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 키가 등록되지 않았거나 내 컴퓨터에 키 자체가 없어서 발생합니다.
ssh-keygen -t rsa -C "본인의 GitHub 이메일"
Git Bash에서 위 명령어로 SSH 키를 간단하게 만들 수 있습니다.
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/admin/.ssh/id_rsa):
Enter passphrase for "/c/Users/admin/.ssh/id_rsa" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/admin/.ssh/id_rsa
Your public key has been saved in /c/Users/admin/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:key “email@naver.com”
키를 만들때 ssh key 저장위치와 비밀번호를 묻는 항목이 있는데, 생성된 키는 보통 기본 위치에 저장되며 그냥 엔터를 누르고 비밀번호 입력은 건너뛰어도 됩니다.
cat ~/.ssh/id_rsa.pub
위 명령어로 현재 생성된 키를 확인할 수 있습니다.
복사해서 GitHub 사이트의 'Settings → SSH and GPG keys → New SSH key'에 붙여넣고 저장하면 됩니다.