티스토리 뷰
안녕하세요! 오늘은 하나의 PC에서 여러 Git 계정을 사용하는 방법에 대해 이야기해볼게요. 최근에 회사 계정과 개인 계정을 모두 사용해야 하는 상황이 생겨서, 이를 해결하기 위해 여러 방법을 시도해봤어요. 그 과정에서 알게 된 점들을 여러분과 공유해보려고 합니다.
1. SSH 키 생성하기
첫 번째 단계는 SSH 키를 생성하는 거예요. 회사 계정과 개인 계정 각각에 대해 SSH 키를 만들고, 이를 GitHub에 등록하는 방법입니다. 먼저 git bash를 실행하여 아래와 같은 명령어를 입력합니다.
- SSH 키 생성
- -t rsa : 생성할 키의 유형을 지정합니다. 여기서는 RSA 키를 생성하겠다는 의미입니다.
- -b 4096 : 생성할 RSA 키의 비트 길이를 설정합니다. 4096 비트는 매우 강력한 보안을 제공하며, 기본값은 2048 비트입니다.
- -C "your_email@example.com": 생성하는 SSH 키에 주석을 추가합니다. 주로 이메일 주소를 사용하여 키의 소유자를 식별하는 데 도움을 줍니다.
- -f "personal_git_key": 생성할 키 파일의 이름을 지정합니다. 여기서는 personal_git_key라는 이름으로 키 파일이 생성됩니다.
#ssh 폴더로 이동
cd ~./ssh
# 개인 계정 SSH 키 생성
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f "personal_git_key"
# 회사 계정 SSH 키 생성
ssh-keygen -t rsa -b 4096 -C "your_company_email@example.com" -f "company_git_key"
이때 키 파일의 이름을 다르게 지정해주는 것이 중요해요. 예를 들어 ~/.ssh/personal_git_key과 ~/.ssh/company_git_key와 같이요. 이러면 나중에 혼동할 일이 없겠죠?
-f 옵션을 사용하지 않으면 id_rsa라는 기본 이름이 사용됩니다.
SSH키 생성을 하게 되면 이어서 비밀번호 설정에 관한 질문이 나옵니다.
#비밀번호 확인
Enter passphrase (empty for no passphrase):
#비밀번호 재확인
Enter same passphrase again:
엔터로 넘어가도 되며 나중에 다시 설정 가능합니다.
전체적인 설정과정은 아래와 같습니다.
- SSH 키 생성 확인
$ ls -al
total 43
drwxr-xr-x 1 yj 197121 0 Sep 5 11:48 .
drwxr-xr-x 1 yj 197121 0 Sep 3 17:15 ..
-rw-r--r-- 1 yj 197121 207 Sep 4 09:31 config
-rw-r--r-- 1 yj 197121 2610 Sep 4 09:26 company_git_key
-rw-r--r-- 1 yj 197121 573 Sep 4 09:26 company_git_key.pub
-rw-r--r-- 1 yj 197121 2610 Sep 4 09:19 personal_git_key
-rw-r--r-- 1 yj 197121 573 Sep 4 09:19 personal_git_key.pub
💡personal_git_key: 개인 키로, SSH 인증에 사용됩니다.
personal_git_key.pub: 안전하게 공유할 수 있는 공개 키로, 서버에 등록하여 액세스를 허용하는 데 사용됩니다.
2. SSH 설정 파일 수정하기
SSH 키를 생성한 후, 이제는 SSH 설정 파일을 수정해야 해요. ~/.ssh/config 파일을 열고 아래와 같이 설정해줍니다. 파일이 없다면 만들어서 진행해주세요.
- ~/.ssh/config
# 개인 계정
Host github.com-personal
HostName github.com
User git
IdentityFile ~/.ssh/personal_git_key
# 회사 계정
Host github.com-company
HostName github.com
User git
IdentityFile ~/.ssh/company_git_key
이 설정을 통해 Git이 어떤 계정을 사용할지 명확하게 지정할 수 있어요.
- Host : 이 부분은 SSH 연결 시 사용할 별칭입니다. 예를 들어, github-work는 회사 계정을 사용할 때 입력할 별칭입니다. 원하시는 대로 변경할 수 있습니다.
- HostName : 이 부분은 변경할 필요가 없습니다. GitHub의 기본 주소인 github.com을 그대로 사용합니다.
- User : 이 부분도 변경할 필요가 없습니다. GitHub에 접속할 때 사용할 사용자 이름은 항상 git입니다.
- IdentityFile : 이 부분은 각 계정에 해당하는 SSH 키 파일의 경로를 지정합니다. 계정에 맞는 SSH 키 파일 경로로 수정해야 합니다.
3. SSH-Agent에 키 추가하기
SSH 키가 SSH 에이전트에 추가되어 있는지 확인합니다. 터미널에서 다음 명령어를 입력해줍니다.
- SSH-Agent 시작하기
eval "$(ssh-agent -s)"
- SSH 키 추가하기
ssh-add ~/.ssh/personal_git_key
ssh-add ~/.ssh/company_git_key
위의 명령어에서 personal_git_key는 실제로 생성한 개인 SSH 키 파일의 이름입니다. 만약 다른 이름으로 저장하셨다면 그에 맞게 수정하셔야 합니다.
- SSH 연결 테스트
SSH 키가 제대로 작동하는지 확인하기 위해 다음 명령어를 입력하여 GitHub과의 SSH 연결을 테스트합니다.
ssh -T git@github.com
정상적으로 연결되면 다음과 같은 메시지가 출력됩니다. 이 메시지가 나온다면 SSH 키가 올바르게 설정된 것입니다.
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
4. GitHub에 ssh-key 등록하기
- 공개 키 복사하기 : 아래 명령어를 입력하여 출력된 내용을 복사합니다.
cat ~/.ssh/personal_git_key.pub
- GitHub에 SSH 키 등록하기
- github에서 프로필을 클릭 > [Settings] > [SSH and GPG keys] > [New SSH key] 순서대로 클릭합니다.
- 그 뒤에는 Title, Key type, Key를 순서대록 입력합니다.
5. SSH로 클론 받기
만약 이미 클론된 레파지토리가 있다면 6번으로 넘어가시면 됩니다.
GitHub에서 클론하고자 하는 레파지토리의 페이지로 가서, Code 버튼을 클릭한 후 SSH URL을 복사합니다. URL은 git@github.com:username/repository.git 형태입니다.
- 터미널에서 클론하기
- 터미널을 열고, 원하는 디렉토리로 이동한 후 다음 명령어를 입력합니다.
git clone git@github.com:username/repository.git
6. 이미 클론된 경우 원격 저장소 URL 수정하기
이미 클론된 리포지토리의 원격 URL을 수정하거나, 커밋할 때 사용할 사용자 정보를 설정하는 과정입니다.
- 터미널에서 클론한 리포지토리의 디렉토리로 이동
cd path/to/your/repository
- 현재 원격 URL 확인하기
git remote -v
- 원격 URL 수정하기
- 각 프로젝트에서 사용할 Git remote URL을 설정합니다. 개인 프로젝트와 회사 프로젝트에 맞게 설정해줍니다.
# 개인 프로젝트 (예: my-personal-repo)
git remote set-url origin git@github.com-personal:username/my-personal-repo.git
# 회사 프로젝트 (예: my-company-repo)
git remote set-url origin git@github.com-company:companyname/my-company-repo.git
- 커밋할 때 사용자 정보 설정하기
- 각 프로젝트에 맞게 커밋할 때 사용하는 사용자 정보를 설정해줍니다.
# 개인 프로젝트
git config user.name "Your Name"
git config user.email "your_email@example.com"
# 회사 프로젝트
git config user.name "Your Company Name"
git config user.email "your_company_email@example.com"
마무리
이렇게 해서 하나의 PC에서 여러 Git 계정을 사용하는 방법을 정리해봤어요. 처음에는 여러 단계와 설정이 많아 조금 복잡하게 느껴졌지만 하나하나 따라 해보니 생각보다 간단하더라고요. 각 계정에 맞는 SSH 키를 설정하고 원격 URL을 조정하는 과정이 특히 유용했습니다.
이제는 회사와 개인 프로젝트를 모두 편리하게 관리할 수 있어서 매우 만족스럽습니다.
이번 과정을 통해 GitHub 계정을 효율적으로 관리하는 방법을 배웠고, 앞으로 더 수월하게 작업할 수 있을 것 같아요. 여러분도 이 방법을 통해 GitHub 계정을 체계적으로 관리하시길 바라며, 도움이 되길 바랍니다. 😊