오늘 Github에서 작업하던 레포지토리를 private으로 전환했더니, 배포했던 서버에서 예상치 못한 문제가 발생하였다. 서버에서 git pull명령을 실행해 변경 사항을 받아오려고 했을 때, 인증 문제가 발생하며 pull 이 실패 했다. 이 문제를 해결하기 위해 SSH키 인증 방식을 적용하는 방법을 사용했다.
레포지토리를 private으로 변경하고 난 후, 배포 서버에서 git pull이 실행되지 않으며 "Permission denied (publickey)" 오류가 발생했다. 이는 public 레포지토리에서는 인증이 필요 없었지만, private 레포지토리에서는 인증이 필요하기 때문이다.
먼저 배포 서버에 SSH키를 새로 생성한다.
ssh-keygen -t rsa -b 4096 -C "my_email@gmail.com"
id_rsa (개인키)와 id_rsa.pub(공개키) 파일이 만들어진다.
cat ~/.ssh/id_rsa.pub

생성된 SSH키 파일 중 id_rsa.pub의 내용을 Github의 SSH키 설정에 추가한다.
id_rsa.pub키를 붙여 넣는다.
이제 서버에서 Github repository에 SSH로 접근할 수 있도록 설정했으니, 다시 서버를 열어놓은 터미널로 돌아와 아래 명령어로 입력.
git remote set-url origin git@github.com:username/your_repository.git
git pull을 다시 실행해 레포지 토리에서 최신 변경 사항을 받을 수 있었다. 마지막으로 SSH 연결이 잘 이루어지는 지확인하기 위해 다음 명령어를 실행했다.
ssh -T git@github.com
