1. 소개
github를 사용하는 계정이 회사계정이 있고, 내 계정이 있는 경우에 ssh키가 다르게 연결이 된다. 이 때에 회사 프로젝트와 개인 프로젝트를 clone하게되면 git이 어느 ssh-key를 사용할지 몰라서 fetch, pull, push할 때 문제가 될 때가 있다. 이 문제를 해결하기 위해서 다음과 같이 한다.
2. 설정하기
1단계: ssh config 설정
회사 Github계정은 work-ssh-key로 설정되어있고, 개인 Github 계정은 home-ssh-key로 설정되었다고 가정한다.
키가 잘 있는지 확인해 보자
ssh-add -l
3072 SHA256:JHhoQjqE75GFGVq6vDQI2pAFy5Ic0tE+spAV253sxWI [email protected] (RSA)
3072 SHA256:zwxmzMn7Qonf1vbNaUknzYxu5LYIPJrOg99pIz00qKs [email protected] (RSA)
~/.ssh/config
파일을 열고 다음과 같이 설정한다.
Host github.com
HostName github.com
IdentityFile ~/.ssh/work-ssh-key
IdentitiesOnly yes
Host github2.com
HostName github.com
IdentityFile ~/.ssh/home-ssh-key
IdentitiesOnly yes
이렇게 설정을 하면 회사 github 리포지토리는 github.com
으로 설정이 되고, 개인 github 리포지토리는 github2.com
으로 설정이 된다.
이 설정이 잘 되었는지 확인하기 위해서는 다음과 같이 해본다.
ssh -T [email protected]
Hi workaccount! You've successfully authenticated, but GitHub does not provide shell access.
ssh -T [email protected]
Hi personalaccount! You've successfully authenticated, but GitHub does not provide shell access.
2단계: 회사 리포 클론하기 / 리모트 URL 바꾸기
회사 remote URL은 기존에 github사용하는 것이랑 동일하게 사용하면 된다
git clone [email protected]:my-company/my-work-project.git
git remote set-url origin [email protected]:my-company/my-work-project.git
3단계: 개인 리포 클론하기 / 리모트 URL 바꾸기
개인 프로젝트는 clone을 할 때 url을 github2.com로 바꿔준다. 그러면 위에서 설정한 ~/.ssh/config 파일이 자동으로 키를 설정하고 Host파일도 바꿔서 처리한다.
git clone [email protected]:my-home/my-personal-project.git
기존에 있는 프로젝트는 remote url를 바꿔준다.
git remote set-url origin [email protected]:my-home/my-personal-project.git
제대로 되는지 확인해 보자.
git fetch origin -p
git remote -v
origin [email protected]:my-home/my-personal-project.git (fetch)
origin [email protected]:my-home/my-personal-project.git (push)
3. 결론
이제 개인프로젝트와 회사프로젝트를 한 컴퓨터에서 사용해도 각자 제대로 된 ssh 키를 이용해서 git으로 작업을 할 때 지장을 받지 않도록 할 수 있다.