github multi account, multiple profile 설정하기
github을 열심히 사용하는 개발자들이라면
아마도 개인적으로 하는 프로젝트들도 github에 있을거고
회사에서도 github을 쓰고 있을거예요
물론 회사용 컴퓨터, 개인용 컴퓨터로 구분하여
회사용 컴퓨터로는 회사용 github repository에 접근하고
개인용 컴퓨터로는 개인용 github repository에 접근하는것이 제일 좋은데요
회사일과 본인일의 경계가 희미한분들은 동일한 pc에서 회사용, 개인용 github계정을 모두 써야할 필요가 있을때가 있습니다
이런분들을 위한 github의 다중 계정을 설정하는 방법을 알려드려요
여기서 소개하는 세팅의 기본적인 개념은 회사 계정을 디폴트로 두고 개인계정을 추가하는 방식인데요
내용을 이해하시고 참고하시면 반대의 세팅을 하거나, 2개 이상의 여러개의 세팅이나 환경 구성도 가능합니다
일단 가장 먼저 각각의 github에 인증용으로 사용할 ssh 키가 2개가 있어야 합니다
당연히 하나는 개인용이고, 하나는 회사용이겠죠
각각 다른 이름으로 파일을 생성해주세요
cd ~/.ssh
ssh-keygen -t rsa -b 4096 -C "personal@email.com"
ssh-keygen -t rsa -b 4096 -C "office@email.com"
생성하고 난 다음에 .ssh 폴더를 열어보면
ls -al ~/.ssh
이러한 형태로 키쌍이 2개가 있어야 합니다
꼭 해당 파일명일 필요는 없지만 회사용과 개인용의 파일명을 명확히 알수 있도록 구분해주세요
id_rsa_personal
id_rsa_personal.pub
id_rsa_office
id_rsa_office.pub
그리고 각 쌍의 공개키를 회사용, 개인용 github의 내 계정에 등록해줍니다
pbcopy < ~/.ssh/id_rsa_personal.pub
아래 링크를 클릭하면 github의 키등록페이지로 이동합니다
https://github.com/settings/keys
이제 각각의 키를 어떻게 사용할지 설정이 필요합니다
vi ~/.ssh/config
~/.ssh/config 파일을 생성하여 아래 내용을 저장합니다
# Personal account
Host github.com-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
# Office account
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_office
파일 내용을 설명하자면
git repository의 경로가
github.com-personal 이라는 호스트면 ~/.ssh/id_rsa_personal 키파일을 사용하고
github.com 이라는 호스트면 ~/.ssh/id_rsa_office 키파일을 사용한다는 의미입니다
github.com-personal 이라는 호스트명은 실제로 실존하지는 않지만 논리적으로 구분을 하기 위한 설정값입니다
실제로는 github.com으로 호출하게 됩니다
그리고 github profile도 마찬가지로 각각 설정해야겠죠?
github project 별로 git config 명령어를 사용하여 commit 시에 사용될 유저 프로필을 설정할수도 있고
디렉토리별로도 가능합니다
일단 디폴트 이름을 지정합니다
vi ~/.gitconfig
해당 파일경로에 아래 내용을 기록해주세요
[user]
name = Your Name
email = office@email.com
[includeIf "gitdir:~/myproject/"]
path = ~/myproject/.gitconfig
이 파일에 기록되는 name과 email이 기본값으로 사용되고
git 디렉토리가 ~/myproject가 포함된 경로에 있을때
~/myproject/.gitconfig 파일을 사용한다는 내용입니다
그렇다면 당연히 ~/myproject/.gitconfig 파일을 생성해야겠죠?
[user]
name = Your Name
email = personal@email.com
이렇게 저장하면 설정이 완료되었습니다
ssh -T github.com
ssh -T github.com-personal
각각 명령어를 입력했을때 각 호스트에 맞는 github 환영 메시지가 보인다면 모든 설정이 완료되었습니다
그리고 이제 앞으로 github repository를 clone하실때는 다음과 같은 방법으로 하시면 됩니다
디폴트 설정이 회사 계정을 쓰는것으로 설정했으니깐
회사의 repository에 접근할때는 기존과 동일한 방식으로 사용하시면 됩니다
git clone git@github.com:USERNAME/office-repo.git
그리고 개인 계정의 repository에 접근할때는 github.com이라는 호스트명이 있는 부분을
github.com-personal로 변경하시면 됩니다
git clone git@github.com-personal:USERNAME/personal-repo.git
github.com-personal이라는 호스트가 실존하지는 않지만 우리가 config에서 설정할때
github.com-personal의 호스트를 가졌을때는
github.com을 사용하고 키파일은 개인키파일을 사용하도록 지정했기때문에 정상적으로 동작하게 됩니다
github.com-personal을 사용한 repo는 personal 키정보를 사용하게 되고
github.com을 사용한 repo는 office 키정보를 사용하게 됩니다