본문 바로가기
프로그래밍/Git

[Git] git push시 발생하는 에러(확인 후 SSH키 생성하기)

by CaffeLatte 2020. 12. 14.

SSH키를 사용중 id_rsa키의 백업을 안하고 포맷을 해버렸다고 가정을 해보자

git add, git commit까지는 잘 된다
하지만, 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.

해석해보면,
git@github.com: 권한 거부(공용 키).
치명적: 원격 저장소에서 읽을 수 없고
올바른 액세스 권한이 있고 저장소가 있는지 확인하라는 내용이다.

구글링을 해보자

Permission denied (publickey)로 검색을 해서 맨 처음 나오는 링크로 들어갔다(GitHub 문서)

 

사용중인 키가 있는지 확인해보자

eval $(ssh-agent -s)

Agent pid xxxx 라고 나온다

 

개인 키가 생성되어 SSH에 로드되었는지 확인해보자

ssh-add -l -E sha256

The agent has no identities. 라고 나온다

 

새 SSH키를 생성 하러 가자(참고 링크)

ssh-keygen -t ed25519 -C "your_email@example.com"

이메일 부분은 자신의 것을 넣고 엔터를 누르면
기본파일 위치와 암호관련 내용을 물어보는데,
저는 기본파일 위치는 오케이, 암호관련 내용은 패스, 그래서 엔터엔터엔터~~~

이렇게 키가 생성된다(사진에서 개인적인 부분은 안보이게 함)

 

Mac은 추가 작업이 필요하다

~/.ssh/config 파일이 존재하는지 체크해보자

open ~/.ssh/config

만약 존재하지 않는다면 파일을 생성하고,

touch ~/.ssh/config

내용을 추가해주자

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

 

키를 생성했으니까 ssh-agent에 SSH키를 추가하자

ssh-add ~/.ssh/id_ed25519

거의 다 왔다

 

Github 계정에 SSH키를 추가하자(참고 링크)

SSH 공개 키를 클립보드에 복사하자

윈도우에서...
clip < ~/.ssh/id_ed25519.pub

맥에서...
pbcopy < ~/.ssh/id_ed25519.pub

복사가 잘되었으면, github > Settings > SSH and GPG keys에서 복사한 키를 추가해주자.
(추가할 때는 줄바꿈이나 공백을 추가하지 말자)
그러면...

이렇게 추가되면 git push를 다시 시도해보자

push가 잘되는가? 그러면 성공한거다

다시 github에 가서 페이지 새로고침 해보면

이렇게 초록색으로 바뀌면서 마지막 내용이 Never used에서 Last used...이라고 바뀐다

 

컴퓨터를 포맷하고 재설치하면서 복습겸사겸사 해보았다
전과 다른점이라면 id_rsa가 id_ed25519로 바뀌었다.
Ed25519 알고리즘(넌 누구냐, 복습하려다 공부 추가되는 거 실화?)

 

 

끝.

댓글