개요
하나의 머신(PC)에서 회사의 GitHub 계정과 개인 GitHub 계정을 모두 사용하고 싶은 경우가 있습니다. 이번 블로그 포스트에서는 여러 개의 GitHub 계정을 하나의 머신에서 설정하여 사용하는 방법에 대해서 알아보겠습니다.
SSH 키 생성
여러 개의 GitHub 계정을 사용하기 위해서는 SSH 키를 생성해야 합니다. 제가 macOS
를 사용하고 있기 때문에 macOS
를 기준으로 설명하겠습니다.
먼저, .ssh
디렉토리로 이동합니다.
cd ~/.ssh
그 다음, ssh-keygen
명령어를 사용하여 SSH 키를 생성합니다. 우선 개인 계정을 위한 SSH 키를 생성합니다.
ssh-keygen -t rsa -b 4096 -C "GITHUB_PERSONAL_ACCOUNT_EMAIL"
그럼 다음과 같이 어떤 이름으로 키를 저장할지 물어보게 됩니다.
Enter file in which to save the key (/Users/user_name/.ssh/id_rsa):
저는 구별하기 쉽게 하기 위해 id_rsa_personal
이라는 이름으로 저장하였습니다. 그런 다음, 회사 계정을 위한 SSH 키를 생성합니다.
ssh-keygen -t rsa -b 4096 -C "GITHUB_COMPANY_ACCOUNT_EMAIL"
역시 어떤 이름으로 키를 저장할지 물어보게 됩니다.
Enter file in which to save the key (/Users/user_name/.ssh/id_rsa):
저는 구별하기 쉽게 하기 위해 id_rsa_work
이라는 이름으로 저장하였습니다.
GitHub에 SSH 키 등록
생성한 SSH키를 GitHub에 등록해야 합니다. 우선 개인 계정에 SSH 키를 등록해 봅시다.
다음 명령어를 실행하면 SSH키를 확인할 수 있습니다.
cat ~/.ssh/id_rsa_personal.pub
표시된 SSH 키를 복사한 다음, GitHub 웹사이트에서 Settings
-> SSH and GPG keys
-> New SSH key
를 클릭하여 SSH 키를 등록합니다. 이때, GitHub 웹 사이트에는 개인 계정으로 로그인이 되어 있어야 합니다.
이와 동일한 방법으로 회사 계정에 SSH 키를 복사하여 GitHub 웹사이트에 등록합니다. 이때, GitHub 웹 사이트에는 회사 계정으로 로그인이 되어 있어야 합니다.
config 설정
이렇게 설정한 SSH 키를 사용하여 GitHub의 계정을 구분하기 위해 ~/.ssh/config
파일을 다음과 같이 수정합니다.
# personal
Host personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
# work
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_work
그리고 터미널에서 다음 명령어를 실행하여 SSH 키가 잘 등록되었는지 확인합니다.
ssh -T git@personal
다음과 같은 메시지가 나오면 성공적으로 등록된 것입니다.
Hi GITHUB_PERSONAL_ACCOUNT! You've successfully authenticated, but GitHub does not provide shell access.
마찬가지로 회사 계정에 대해서도 다음 명령어를 실행하여 SSH 키가 잘 등록되었는지 확인합니다.
ssh -T [email protected]
역시 다음과 같은 메시지가 나오면 성공적으로 등록된 것입니다.
Hi GITHUB_COMPANY_ACCOUNT! You've successfully authenticated, but GitHub does not provide shell access.
클론(clone)
이제 GitHub에서 프로젝트를 클론(Clone)할 때, 다음과 같이 개인 계정과 회사 계정을 구분하여 사용할 수 있습니다.
# Personal account
git clone git@personal:GITHUB_PERSONAL_ACCOUNT/REPOSITORY.git
# Company account
git clone [email protected]:GITHUB_COMPANY_ACCOUNT/REPOSITORY.git
Git 사용자 설정
다음 명령어를 실행하면, Git
에 설정된 user.name
과 user.email
을 확인할 수 있습니다.
# Check user name
git config user.name
# Check user email
git config user.email
Git
의 Global
설정에 사용자 정보를 등록하지 않았다면 명령어를 실행했을 때, 아무것도 나오지 않을 것입니다.
.gitconfig
파일을 수정하여 Global
사용자를 설정하고, 특정 폴더에서 사용할 사용자를 설정할 수 있습니다.
우선 ~/.gitconfig-work
파일과 ~/.gitconfig-personal
파일을 생성하고, 다음과 같이 수정합니다.
~/.gitconfig-work
# code ~/.gitconfig-work
[user]
name = "GITHUB_COMPANY_ACCOUNT_USER_NAME"
email = GITHUB_COMPANY_ACCOUNT_EMAIL
~/.gitconfig-personal
# code ~/.gitconfig-personal
[user]
name = "GITHUB_PERSONAL_ACCOUNT_USER_NAME"
email = GITHUB_PERSONAL_ACCOUNT_EMAIL
그런 다음 .gitconfig
파일을 다음과 같이 수정합니다.
# code ~/.gitconfig
# This is for Global settings
[user]
name = "GITHUB_COMPANY_ACCOUNT_USER_NAME"
email = GITHUB_COMPANY_ACCOUNT_EMAIL
# For company account
[includeIf "gitdir:~/WORK/"]
path = ~/.gitconfig-work
# For personal account
[includeIf "gitdir:~/PERSONAL/"]
path = ~/.gitconfig-personal
이 설정은 Git
의 Global
사용자로 회사 계정을 설정하였습니다. WORK
폴더에서는 회사 계정을 사용하도록 하고, PERSONAL
폴더에서는 개인 계정을 사용하도록 설정하였습니다.
잘 설정이 되었는지 확인하기 위해 PERSONAL
폴더로 이동합니다. 그런 다음 다음 명령러를 실행하여 사용자 정보를 확인합니다.
cd ~/PERSONAL
git config user.name
git config user.email
그럼 다음과 같이 Git
의 Global
사용자 정보가 나오게 됩니다.
# git config user.name
GITHUB_COMPANY_ACCOUNT_USER_NAME
# git config user.email
GITHUB_COMPANY_ACCOUNT_EMAIL
이는 현재 폴더(PERSONAL
)의 Git
프로젝트가 존재하지 않기 때문에, 단순히 Git
의 Global
사용자 정보가 표시되는 것입니다.
그럼 다음과 같이 실제 Git
프로젝트를 생성하고 Git
의 사용자 정보를 확인해 봅시다.
mkdir ~/PERSONAL/temp
cd ~/PERSONAL/temp
git init
git config user.name
git config user.email
그럼 다음과 같이 Git
의 개인 계정 사용자 정보가 나오게 됩니다.
GITHUB_PERSONAL_ACCOUNT_USER_NAME
GITHUB_COMPANY_ACCOUNT_EMAIL
이는 앞서 우리가 .gitconfig
에 설정한 내용이 반영된 것입니다.
[includeIf "gitdir:~/PERSONAL/"]
path = ~/.gitconfig-personal
완료
이것으로 하나의 머신에서 여러 개의 GitHub 계정을 사용하는 방법에 대해 알아보았습니다. 이제 여러 개의 GitHub 계정을 사용하면서 불편함없이 프로젝트를 관리할 수 있게 되었습니다.
또한 .gitconfig
를 사용하여 특정 폴더에서 사용할 사용자를 설정하는 방법에 대해서도 알아보았습니다. 이를 통해 Git
의 사용자 정보를 편리하게 변경할 수 있게 되었습니다.
여러분도 여러 GitHub
계정을 사용해야하는 상황이라면 이 블로그 포스트를 참고하여 여러 개의 GitHub
계정을 설정하여 사용해보시기 바랍니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.