<Git> 하나의 local에서 두개의 github계정 사용하기

jm_yoon·2021년 5월 10일
3

개인 깃헙계정과 회사의 깃헙계정이 있을 때 하나의 로컬머신에서 두 계정 모두 쓰고 싶을 때 어떻게 설정해야하는지 정리해보았다.
(구글링해보니 정말 잘 정리해놓은 블로그가 많아서 참고하기 좋았다. 이 글은 그냥 내가 혼자 다시 정리할 겸 쓰는 글~)

크게 정리를 해보자면
1. ssh-key 만들기
2. github에서 ssh설정하기
3. ssh config 설정
4. git config 설정

1. ssh-key 만들기

우선 cd ~/.ssh 로 이동하여ssh-key 만들기
$ ssh-keygen -t rsa -b 4096 -C "본인의 깃헙메일주소"
ex) ssh-keygen -t rsa -b 4096 -C "wjdals.yoon14@gmail.com"

개인용과 회사용을 구분하기 위해 id_rsa_personal라고 해주기
Enter file in which to save the key (~/.ssh/id_rsa): id_rsa_personal
그러면 예쁜그림?과 함께 ssh-key가 생성된다.

동일한 방법으로 회사용 ssh-key도 만들기! id_rsa_work

$ cd ~/.ssh
$ ls
config              
id_rsa_personal     
id_rsa_work.pub
id_rsa              
id_rsa_personal.pub 
known_hosts
id_rsa.pub          
id_rsa_work

~.pub파일을 복사하여 github에 붙여넣기
터미널창에서 해당 파일 열고 싶을 때? $ cat id_rsa_personal.pub
자세한 설명은 생활코딩 ssh Youtube

2. ssh config 설정

~/.ssh에서 config파일 생성하기

# personal
Host personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal

# work
Host work
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_work

IdentityFile에는 private key 파일의 위치를 입력한다.

3. .gitconfig 작성

터미널창에 vim ~/.gitconfig 입력하여 파일 작성하기

# This is Git's per-user configuration file.
[user]
	name = jmyoon     
	email = wjdals.yoon14@gmail.com
# work
[includeIf "/Users/jmin/devel/work/"]     
	path = .gitconfig-work

includeIf "파일경로" 는 해당 파일경로 있는 것들은 .gitconfig-workpath설정
work디렉토리에 있는 파일들은 회사계정으로 git push, pull되게끔 설정

.gitconfig-work 파일 작성하기

[user]
	email = 회사깃헙계정메일주소
	name = 이름
[github]
user = 유저명

4. 확인해보기

개인계정

$ ssh -T git@personal
Hi jeongmin14! You've successfully authenticated, but GitHub does not provide shell access.

회사계정

$ ssh -T git@work
Hi miayoon14! You've successfully authenticated, but GitHub does not provide shell access.

5. git clone

이제 git clone할 때 ssh를 이용한다.
$ git clone git@github.com:jeongmin14/algorithm.git에서
git@github.com 부분을 개인계정일 경우 git@personal로, 회사계정일 경우 git@work로 바꿔주기 (ssh/config에서 작성한 host로 바꿔주면 된다. ex)git@{host})

profile
Hello!

0개의 댓글