Github Repository를 Private으로 설정 했을 때 배포한 서버 권한

Ruah·2024년 11월 13일

오늘 Github에서 작업하던 레포지토리를 private으로 전환했더니, 배포했던 서버에서 예상치 못한 문제가 발생하였다. 서버에서 git pull명령을 실행해 변경 사항을 받아오려고 했을 때, 인증 문제가 발생하며 pull 이 실패 했다. 이 문제를 해결하기 위해 SSH키 인증 방식을 적용하는 방법을 사용했다.

레포지토리를 private으로 변경하고 난 후, 배포 서버에서 git pull이 실행되지 않으며 "Permission denied (publickey)" 오류가 발생했다. 이는 public 레포지토리에서는 인증이 필요 없었지만, private 레포지토리에서는 인증이 필요하기 때문이다.

1.서버에서 SSH키 생성

먼저 배포 서버에 SSH키를 새로 생성한다.

ssh-keygen -t rsa -b 4096 -C "my_email@gmail.com"
  • 이 명령어를 사용하면 기본 경로에 SSH키가 생성이되며, 해당 home/ubuntu/.ssh/ 경로에 id_rsa (개인키)와 id_rsa.pub(공개키) 파일이 만들어진다.
cat ~/.ssh/id_rsa.pub
  • 이 명령어를 실행하면 id_rsa.pub 파일의 내용이 터미널에 표시된다. 이 내용을 복사해서 GitHub의 SSH 설정에 붙여넣으면 된다.

2. Github에 SSH 공개 키 등록

생성된 SSH키 파일 중 id_rsa.pub의 내용을 Github의 SSH키 설정에 추가한다.

  1. Github 계정의 Setting > SSH and GPG keys 로 들어간다.
  2. 오른쪽 상단 'New SSH key'버튼을 클릭하고 제목은 원하는대로 넣되, 아까 복사한 id_rsa.pub키를 붙여 넣는다.
  3. 키가 추가되면 GitHub에서 SSH 인증을 사용할 수 있게 된다.

3. 서버에서 Github에 SSH로 접근 설정

이제 서버에서 Github repository에 SSH로 접근할 수 있도록 설정했으니, 다시 서버를 열어놓은 터미널로 돌아와 아래 명령어로 입력.

  1. Github 의 원격 URL을 SSH 형식으로 변경하여 터미널에 입력
git remote set-url origin git@github.com:username/your_repository.git
  1. 변경 후 git pull을 다시 실행해 레포지 토리에서 최신 변경 사항을 받을 수 있었다.

4. SSH 접속 테스트

마지막으로 SSH 연결이 잘 이루어지는 지확인하기 위해 다음 명령어를 실행했다.

ssh -T git@github.com
  • You've successfully authenticated 메세지가 나오며, SSH설정이 올바르게 되어있다는것을 확인 할 수 있다.
  • 이후 다시 서버 테스트를 해보면 잘 실행 되는 것을 알 수 있다.
profile
집요한 주니어 개발자의 호되게 당했던 기록

0개의 댓글