notes
GitHub 계정 여러개 사용하는 방법
GitHub 계정 여러 개를 SSH 키·host 설정으로 분리해 사용하는 방법.
1. SSH Key 생성하기
- github에서 사용하는 계정이 다음과 같다고 가정합니다.
- userA (사용 email : userA@example.com)
- userB (사용 email : userB@example.com)
iTerm실행 → 다음 명령어 입력- 나중에 추가된 SSH 키를 확인하기 위해 기존 파일 목록을 확인하는 과정입니다.
cd ~/.ssh
ls -al
- 다음 명령어를 입력 →
Enter클릭→Enter클릭
ssh-keygen -t rsa -C "userA@example.com" -f "id_rsa_userA"
- 다음 명령어를 입력 →
Enter클릭→Enter클릭
ssh-keygen -t rsa -C "userB@example.com" -f "id_rsa_userB"
- 다음 명령어를 입력합니다.
- SSH key가 생성된 것을 확인하기 위한 과정입니다.
- .pub 확장자가 붙은 파일이 공개키 파일입니다.
- .pub 확장자가 붙지 않은 파일이 개인키 파일입니다.
ls -al ~/.ssh
2. ssh-agent에 새 SSH 개인키 추가하기
- 다음 명령어를 입력합니다.
- 백그라운드에 ssh-agent를 실행시켜주는 과정입니다.
- 표시되는 pid 값은 매번 변하므로, 아래의 사진과 달라도 문제가 되지 않습니다.
eval "$ (ssh-agent -s)"
- 다음 명령어를 입력합니다.
- userA와 userB의 SSH 개인키를 ssh-agent에 추가하는 과정입니다.
ssh-add ~/.ssh/id_rsa_userA
ssh-add ~/.ssh/id_rsa_userB
- 다음 명령어를 입력합니다.
- ssh-agent에 정상적으로 SSH 개인키가 추가되었는지 확인하는 과정입니다.
ssh-add -l
3. GitHub에 새 SSH 공개키 추가하기
- 다음 명령어를 실행 → id_rsa_userA.pub의 내용을 복사
code ~/.ssh/id_rsa_userA.pub
- userA로 GitHub 로그인 →
Settings클릭
SSH and GPG keys클릭 →New SSH key클릭
- Title 입력 → Key에 복사한 공개키 파일 내용을 붙여넣기 →
Add SSH key클릭
- 다음 명령어를 실행 → id_rsa_userB.pub의 내용을 복사
code ~/.ssh/id_rsa_userB.pub
- 다음 명령어를 실행 → 내용을 복사
- userB로 GitHub 로그인 →
Settings클릭
SSH and GPG keys클릭 →New SSH key클릭
- Title 입력 → Key에 복사한 공개키 파일 내용을 붙여넣기 →
Add SSH key클릭
4. SSH config 파일 설정하기
- 다음 명령어를 입력합니다.
cd ~/.ssh
code config
- config 파일에 다음 내용을 추가합니다.
Host에 대한 값이 중요합니다.- 나중에 ssh로 연결할 때 Host 지시자에 지정된 값이 사용됩니다.
- 따라서 구분하기 쉽고 기억하기 편리한 이름으로 작성하는 것이 좋습니다.
#userA에 대한 SSH 설정
Host github.com-userA
HostName github.com
User userA
IdentityFile ~/.ssh/id_rsa_userA
#userB에 대한 SSH 설정
Host github.com-userB
HostName github.com
User userB
IdentityFile ~/.ssh/id_rsa_userB
5. SSH 연결 테스트하기
- 다음 명령어를 입력합니다.
ssh -T git@github.com-userA
ssh -T git@github.com-userB
6. SSH로 clone 받기
- 이제는 remote Repository를 clone 받을 때, HTTP 프로토콜이 아닌 SSH로 clone을 받아야 합니다.
# userA 계정을 사용하는 경우
git clone git@github.com-userA:github계정/레포지토리명.git
git clone git@github.com-kviruslab:kviruslab-dev/k1-BE.git
# userB 계정을 사용하는 경우
git clone git@github.com-userB:github계정/레포지토리명.git