개발 환경
- OS: macOS Big Sur 11.5.2
- Git: git version 2.40.1
상황 설명
항상 Git 접속 시 https로만 접속했었는데 최근부터 SSH로 접속하기 시작했다. 매번 사용자 이름과 이메일을 입력할 필요가 없고 SSH key를 등록하는 방식이라 편리할 것 같아 설정했는데 git pull을 수행하려고 하니 오류가 발생했다. ssh key 생성 및 설정 방식은 검색하면 많은 자료가 있으니 참고하면 좋을 것 같다.
해결 과정
Git Pull failed
ssh: Could not resolve hostname github.com:hostname: nodename nor servname provided, or not known Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
위와 같은 오류가 발생하길래 확인해보니 원인은 원격 저장소 위치가 올바르지 않다는 이유였다. 그렇지만 처음에 설정했을 때는 잘 됐는데 개인작업으로 인해 꼬인건가 싶지만 우선 원격 저장소 위치를 다시 설정해주었다.
# 원격 저장소 확인
$ git remote -v
# 원격 저장소 설정
$ git remote set-url origin [git hub ssh URL]
# 다시 원격 저장소를 확인했을 때 fetch와 push의 경로가 다르다면 아예 지웠다 다시 등록
$ git remote remove origin
$ git remote add origin [git hub ssh URL]
그리고 다시 git pull을 실행해보니 이번에는 오류가 달라져있었다.
Git Pull failed
ssh: connect to host github.com port 22: Operation timed out Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
찾아보니 방화벽이 해당 포트를 차단하는 경우가 자주 발생하여 443 포트를 사용해주어야 한다.
# 그냥 접속
$ ssh -T git@github.com
=> ssh: connect to host github.com port 22: Operation timed out
# 443으로는 잘 되는지 확인 질문이 나오면 yes 입력
# 443으로는 접속잘 됨
$ ssh -T -p 443 git@github.com
=> Hi ooo! You've successfully authenticated, but GitHub does not provide shell access.
아래 참고 사이트들을 통해 찾아본 결과 아래와 같이 설정 후 git pull을 하니 정상적으로 작동하였다. 해삐
기본적으로 ~/.ssh/conifg 파일이 있는 것 같았지만 나 같은 경우 파일 자체가 존재하지 않아 그냥 만들어줬다.
$ vi ~/.ssh/config
# 아래 내용을 추가 후 저장
Host github.com
Hostname ssh.github.com
Port 443
참고 자료 및 사이트