Multi-Account Git Setup Guide Using SSH
A comprehensive guide to configuring multiple Git accounts using SSH keys
March 21, 2024
Git을 사용하다 보면 여러 계정으로 작업해야 할 때가 있습니다. 예를 들어, 개인 프로젝트는 개인 GitHub 계정으로 관리하고, 회사 프로젝트는 회사 계정으로 관리해야 하는 상황이 있을 수 있습니다. 이럴 때 여러 계정을 효율적으로 관리할 수 있는 방법이 필요합니다. SSH를 사용하면 별도의 라이브러리 설치 없이 로컬 환경에서 여러 계정을 손쉽게 관리할 수 있습니다.
- SSH 키 생성
먼저, 각각의 계정에 대해 별도의 SSH 키를 생성해야 합니다. SSH 키는 암호화된 형태로 자격 증명을 대체하며, 안전하게 Git 서버와의 통신을 가능하게 합니다.
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/github_user1_ed25519
ssh-keygen -t ed25519 -C "your_other_email@example.com" -f ~/.ssh/github_user2_ed25519
위 명령어를 실행하면 ~/.ssh/ 디렉토리에 각각 github_user1_ed25519와 github_user2_ed25519라는 이름의 SSH 키 쌍(공개 키와 개인 키)이 생성됩니다.
- SSH 설정 파일 구성
SSH 설정 파일(~/.ssh/config)을 통해 각 SSH 키가 어떤 GitHub 계정과 연결될지를 설정합니다. 이 설정 파일을 사용하면 특정 호스트명에 대해 지정된 SSH 키를 사용하도록 지정할 수 있습니다.
Host github-user1
HostName github.com
User git
IdentityFile ~/.ssh/github_user1_ed25519
Host github-user2
HostName github.com
User git
IdentityFile ~/.ssh/github_user2_ed25519
위와 같이 설정하면 github-user1과 github-user2라는 호스트명이 각각의 SSH 키와 연결됩니다.
- Git 리포지토리 클론 및 사용
이제 각각의 SSH 설정을 이용해 Git 리포지토리를 클론하거나, 푸시/풀 작업을 수행할 수 있습니다. 주의할 점은, 클론할 때 URL 형식에서 git@ 부분을 생략하고 github-user1: 또는 github-user2: 형식을 사용해야 한다는 것입니다.
git clone github-user1:user1/test.git
github-user2 계정을 사용할 경우에는 다음과 같이 입력합니다.
git clone github-user2:user2/test.git
이 방식으로 여러 계정을 사용할 수 있으며, Git이 각 계정에 맞는 SSH 키를 자동으로 선택하게 됩니다.
- SSH 키 파일 권한 설정
마지막으로, SSH 키 파일의 권한을 적절히 설정해야 합니다. Git은 개인 키 파일의 권한이 올바르게 설정되지 않은 경우 보안을 위해 경고 메시지를 출력하며, 연결을 거부할 수 있습니다. 따라서, 개인 키 파일의 권한을 600으로 설정해야 합니다.
chmod 600 ~/.ssh/github_user1_ed25519
chmod 600 ~/.ssh/github_user2_ed25519
이제 모든 설정이 완료되었습니다. 로컬 환경에서 여러 Git 계정을 관리할 때, 각 계정마다 다른 SSH 키를 사용하여 안전하게 작업을 진행할 수 있습니다 ~