Github 멀티 계정으로 푸쉬하기
Goal
새로운 깃헙 계정을 만들었다.
- github 계정에 따라서 ssh key를 바꾸어 가며 커밋을 하고자 한다.
방법
github에 ssh키로 접근할 수 있다.
- 기존의 계정의 ssh 설정은 그대로 두자.!
- 새로운 계정은 host 정보를 바꾸어 특정 ssh키와 이름을 바탕으로 접속 가능 (설정파일 : ~/.ssh/config )
// 0. 기존의 계정은 github에 성공적으로 등록되었다고 가정한다.
// id_rsa는 기본값으로 별도의 설정없이 아래처럼 키 만들고 깃허브에 공개키 등록만 하면 된다.
// ssh-keygen -t rsa -C "username1@naver.com" -f "id_rsa"
// ssh-add id_rsa
// 1. 새로 만들 이름은 username2 라고 가정한다.
// - username2으로 키 생성
cd ~/.ssh
ssh-keygen -t rsa -C "username2@naver.com" -f "id_rsa_username2"
// 2. ssh-agent에 등록
>ssh-add id_rsa_username2
//확인
//기존의 키와, 새로운키 2개가 보인다.
>ssh-add -l
3072 SHA256:Q6+jD5XCUndXMqG5x8Soqk3WWX5GqNbX3i9j86UDjcc username1@gmail.com (RSA)
3072 SHA256:22dNKg4vehTS60TsgTN4sLgq9mw1P44rVStY9fFg814 username2@naver.com (RSA)
//3. ~/.ssh/config 수정 (없으면 만들기.)
// host의 정보로 ssh키를 분기해주는 설정이다.
# Personal account-username2
Host github.com-username2
HostName github.com
User username2
IdentityFile ~/.ssh/id_rsa_username2
//확인
ssh -T github.com-username2
Hi username2! You've successfully authenticated, but GitHub does not provide shell access.
//4. github 에 ssh키 등록하기
//5. 깃 레포 받아오기, 푸쉬
// 깃 레포에서 ssh 로 클론 주소를 복사하면 아래와 같다.
git clone git@github.com:username2/multi-user.git
// 이제부터 아래처럼 호스트를 바꿔서, 받아오자. ( 서로 다른 비밀키를 분기하도록 )
git clone git@github.com-username2:username2/multi-user.git
// 또는 아래처럼 remote를 추가해도 좋다.
git remote add upstream git@github.com-username2:username2/multi-user.git
// 6. 각 프로젝트 로컬에, gitconfig 추가하기 ( 커밋터 정보 입력 )
git config --local user.name "username2"
git config --local user.email "username2@naver.com"
// 확인
git config --local --list