개인 깃헙계정과 회사의 깃헙계정이 있을 때 하나의 로컬머신에서 두 계정 모두 쓰고 싶을 때 어떻게 설정해야하는지 정리해보았다.
(구글링해보니 정말 잘 정리해놓은 블로그가 많아서 참고하기 좋았다. 이 글은 그냥 내가 혼자 다시 정리할 겸 쓰는 글~)
크게 정리를 해보자면
1. ssh-key 만들기
2. github에서 ssh설정하기
3. ssh config 설정
4. git config 설정
우선 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
~/.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 파일의 위치를 입력한다.
터미널창에 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-work
로 path
설정
work
디렉토리에 있는 파일들은 회사계정으로 git push, pull되게끔 설정
[user]
email = 회사깃헙계정메일주소
name = 이름
[github]
user = 유저명
$ 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.
이제 git clone할 때 ssh를 이용한다.
$ git clone git@github.com:jeongmin14/algorithm.git
에서
git@github.com
부분을 개인계정일 경우 git@personal
로, 회사계정일 경우 git@work
로 바꿔주기 (ssh/config
에서 작성한 host
로 바꿔주면 된다. ex)git@{host}
)