Posted on:January 16, 2024 at 02:30 AM

복수의 Github 계정을 사용할 때 ssh 설정 팁

복수의 Github 계정을 사용할 때 ssh 설정 팁

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으로 작업을 할 때 지장을 받지 않도록 할 수 있다.