본문 바로가기
Programming

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

by 하하호호 2021. 9. 22.
반응형

 

 

 

 

Git에서 새로운 프로젝트를 clone 하는 과정에서 

git@github.com: Permission denied (publickey).

fatal: Could not read from remote repository.

에러가 발생했다.

 

개발에서 에러는 일상이다. 

당황하지 말고, 차근차근 원인을 찾아보도록 하자.

 

1. SSH 키값이 존재하는지 확인

fatal: Could not read from remote repository.

이슈가 발생하는 근본적인 이유는 SSH authentiction 

문제에 있을 수 있다.

 

키값을 확인해보니 4096 bit의 키 값이 확인되고 있다.

# SSH 키값 확인
ssh-add -l -E sha256
>4096 SHA256:G4Hy**********************************8 *********@gmail.com (RSA)

 

2.서버연결 확인

 

서버와의 연결을 확인해보자.

정상적인 URL로 접속하고 있는 것을 확인할 수 있다.

ssh -vT git@github.com
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
debug1: Connecting to github.com [52.78.231.108] port 22.
debug1: Connection established.
debug1: identity file C:\\Users\\ys/.ssh/id_rsa type -1
debug1: identity file C:\\Users\\ys/.ssh/id_rsa-cert type -1
debug1: identity file C:\\Users\\ys/.ssh/id_dsa type -1
.....
Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 3400, received 3352 bytes, in 0.4 seconds
Bytes per second: sent 9390.7, received 9258.1
status 1
it

 

3. ssh-agent 확인

ssh-agent에 정상적으로 private key가 입력되었는지

확인해본다.

#ssh-agent에 추가된 키 리스트 확인
ssh-add -l

키 리스트를 확인해보면 현재 등록된 키 값을 확인할 수 있다.

 

ssh-add -L

결과값은 내가 발급받은 퍼블릭 키의 값을 확인할 수 있다.

즉 내가 발급받은 키가 정상적으로 agent에 등록되었음을

확인할 수 있다.

그럼에도 불구하고 SSH-Agent가 정상작동하지 않고 있다.

 

 

 

4. 에러확인 및 성공

기본적으로 SSH키를 발급받을 때 굉장히 주의를 기울여야 한다.

분명 서버에서 authentication을 받고, 통신이 가능한 상태인데,

특정 repository의 값만 받아오지 못하는 상황이 이해가 되지

않았는데, 키 발급에 문제가 있었다.

 

ssh-keygen -t rsa -b 4096 -C "USERNAME@gmail.com"

명령어를 입력하고 바로 다음에 나오는 콘솔에서

그냥 엔터를 치면 된다.

Generating public/private rsa key pair.
Enter file in which to save the key (C:\/.ssh/id_rsa):

 

기본경로와 파일명을 디폴트로 지정해야 한다.!!

 

여기서 자기만의 이름을 입력한다던지,

경로를 바꿔버리면 SSH_AGENT가 

내 키를 찾지 못하고 계속 해맨다.

정확히는 호스트를 봐도 호스트를 구분하지

못하는 참사가 일어난다.

 

디폴트 경로 + 디폴트 파일명으로 지정했고,

Git clone 성공

Git push 성공 

 

 

 

반응형

댓글