보통 github를 통해 개발을 진행할 때 SSH Key를 생성하고 공개키를 github 서버에 등록한 뒤 개발을 하게 됩니다.
단순히 github 계정이 한개라면 문제가 없지만 2개 이상의 github 저장소를 등록을 하고 개발을 진행해야 할 때 어떻게 해야 하는지 한번 알아보도록 하겠습니다.
회사용 및 개인용 Repository를 연결한다고 생각하고 설명드리겠습니다.
SSH Key 생성하기
맨 먼저 SSH Key를 생성하여야 합니다.
이때 회사 Repository를 사용할 ssh-key 와 개인 Repository를 사용할 ssh-key를 생성하여 줍니다.
ssh-keygen -f ~/.ssh/id_rsa # 회사용
ssh-keygen -f ~/.ssh/id_personal # 개인용
SSH key github에 등록하기
위에서처럼 ssh-keygen 명령어를 사용하여 개인용 Repository를 위한 SSH 비밀키 및 공개키와, 회사용 Repository를 위한 SSH 비밀키와 공개키 세트 확인합니다.
이후 생성된 개인키와 공개키 중에 공개키를 각각의 github repository에 등록합니다.
예를 들면, 위에서처럼 회사 Repository에 id_rsa.pub 공개키를 등록하고, 개인용 Repository에는 id_personal.pub 공개키를 등록합니다.
SSH Config 설정하기
Github 등록까지 마쳤으면, 이제는 ssh config 등록을 통해 회사용 Github Repository와 개인 Github Repository를 위한 호스트를 각각 분리하여 등록합니다.
먼저 사용자의 `~/.ssh/config` 파일을 아래와 같이 수정합니다. 해당 파일은 SSH 클라이언트 설정파일로, 해당 파일을 수정하여 특정 호스트에 대한 구성을 설정할 수 있습니다.
vim ~/.ssh/config
# 회사 Repository 용
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
# 개인 Repository 용
Host github.com-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_personal
IdentitiesOnly yes
위에서처럼 Host를 통해 각각의 github.com-company는 회사용 계정을 위한 SSH 비밀키를 사용하고, github.com-personal은 개인용 계정을 위한 SSH 비밀키를 사용하도록 구성합니다.
참고로, Host 값은 꼭 위와 같은 형식( ex. `github.com-company` )으로 할 필요는 없고 `company`, `personal` 이렇게 단순한 문자열로 설정하여도 됩니다. 다만 HostName은 실제 Github 서버의 원격 주소인 `github.com`을 입력해주어야 합니다.
위와 같이 설정을 했다면 설정은 모두 완료되었습니다.
각각의 Repository에서 작업하기
이후에는 다음과 같이 config 파일에 등록된 주소를 통해 github 작업을 수행할 수 있습니다.
마무리
SSH Config 구성을 통해 여러 개의 깃헙 저장소를 관리하는 방법에 대해 알아보았습니다.
저도 처음에 설정 부분에서 많이 햇갈렸는데, 한번 구성을 해보면 크게 어렵지 않은 것 같습니다.
다음에도 유용한 정보로 포스팅하겠습니다.
감사합니다.
'개발 도구 및 Git 사용법 > git (협업 툴) 사용법 정리' 카테고리의 다른 글
Git : git clone 이후 모든 브랜치를 원격에서 로컬 브랜치로 가져오기 (0) | 2024.08.14 |
---|---|
GIT : 태그 추가 및 삭제 명령어 간단 정리 (0) | 2023.08.15 |
Git : .gitignore 문법 및 사용법 정리 (추가: '!' 패턴 동작 안될때 해결법) (0) | 2022.12.16 |
Git : github 개인 엑세스 토큰 발급 / Git Crediential을 이용하여 원격저장소에 처음 한번만 로그인하도록 계정정보 캐싱 (0) | 2022.04.11 |
Git: stash list의 각 stash 이름 바꾸기 (rename) (0) | 2022.02.27 |