동일한 머신에서 회사와 개인 GitHub 리포지토리 모두에 접근하는 방법
Source: Dev.to
소개
여러 GitHub 계정(개인 및 회사)을 관리하는 것은 특히 저장소를 분리하고 잘못된 계정으로 커밋하는 것을 방지해야 할 때 까다로울 수 있습니다. 각 계정마다 별도의 SSH 키를 사용하면 작업 흐름이 간단해지고 보안도 향상됩니다.
1단계: 두 개의 SSH 키 쌍 생성
각 GitHub 계정에 전용 RSA 키 쌍을 만듭니다.
회사 계정
ssh-keygen -t rsa -b 4096 -C "your-company-email@example.com" -f ~/.ssh/id_rsa_company
-C옵션은 키를 식별하기 위한 주석(보통 이메일)을 추가합니다.-f옵션은 파일 이름을 지정해 기본 키가 덮어써지는 것을 방지합니다.
패스프레이즈 입력을 요구하는데, 강력히 권장합니다.
명령을 실행하면 다음이 생성됩니다:
~/.ssh/id_rsa_company(개인 키)~/.ssh/id_rsa_company.pub(공개 키)
개인 계정
ssh-keygen -t rsa -b 4096 -C "your-personal-email@example.com" -f ~/.ssh/id_rsa_personal
이 명령으로 다음이 생성됩니다:
~/.ssh/id_rsa_personal(개인 키)~/.ssh/id_rsa_personal.pub(공개 키)
2단계: SSH가 올바른 키를 사용하도록 설정
~/.ssh/config 파일을 편집(또는 새로 만들기)하고 각 계정에 대한 호스트 별칭을 정의합니다.
vi ~/.ssh/config
다음 내용을 추가합니다:
# Company GitHub Account
Host github-company
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_company
IdentitiesOnly yes
# Personal GitHub Account
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
IdentitiesOnly yes
파일을 저장하고 닫습니다. 추가 계정이 있다면 섹션을 더 추가하면 됩니다.
3단계: 공개 키를 GitHub 계정에 추가
회사 계정
cat ~/.ssh/id_rsa_company.pub
전체 출력(ssh-rsa 로 시작해 이메일로 끝나는 부분)을 복사합니다.
- 회사 GitHub 계정의 Settings → SSH and GPG keys 로 이동합니다.
- New SSH key 를 클릭하고, 제목을 입력한 뒤 키를 붙여넣고 저장합니다.
개인 계정
cat ~/.ssh/id_rsa_personal.pub
개인 GitHub 계정에서도 동일한 절차를 반복해 키를 추가합니다.
올바른 호스트를 사용한 저장소 복제
복제할 때는 ~/.ssh/config 에 정의한 호스트 별칭을 사용합니다.
개인 저장소
git clone git@github-personal:USERNAME/REPO.git
회사 저장소
git clone git@github-company:USERNAME/REPO.git
USERNAME/REPO 부분을 실제 저장소 경로로 바꾸세요.
기존 로컬 저장소에 원격 추가
올바른 계정으로 푸시하려면 해당 호스트 별칭을 사용하는 원격을 추가합니다.
개인 원격
git remote add origin git@github-personal:USERNAME/REPO.git
회사 원격
git remote add origin git@github-company:USERNAME/REPO.git
이제 git push와 git pull이 자동으로 올바른 SSH 키를 사용합니다.
빠른 참고
| 별칭 | ~/.ssh/config의 호스트 | 키 파일 |
|---|---|---|
github-personal | github.com | ~/.ssh/id_rsa_personal |
github-company | github.com | ~/.ssh/id_rsa_company |
위 단계들을 따르면 동일한 머신에서 개인 및 회사 GitHub 저장소를 원활하게 사용할 수 있습니다.