Git 계정 분리하기 (회사계정 / 개인계정)

2020. 2. 10. 16:23Javascript

git 회사계정과 개인계정 두 개로 나누어져 있는데, 회사에서 일을 할 때는 회사 계정으로 항상 push 하다가 개인 공부할 때는 개인 계정으로 push를 해야 하는 상황이 올 때 마다 Permission denied (publickey) 오류 메세지를 만나게 되었다. 이를 해결하기 위해 ssk 키를 분리해서 사용하는 방법을 알게 되어 함께 적용을 해보려고 한다. 매번 까먹기 때문에.. 이렇게 정리를 통해서 머리 속에 박아버리기~ 🤗

 

Create SSH key

Generating a new SSH key and adding it to the ssh-agent

위 페이지에 있는 것 처럼 계정 마다 각각의 ssh key를 생성해 준다.

 

 

[terminal open]

ssh-keygen -t rsa -b 4096 -C "youremail@example.com"

아래의 프롬프트가 나오면 각 계정 마다 알아볼 수 있는 위치에 설정한다.

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): /Users/you/.ssh/you

위와 같이 설정을 하게 되면 아래와 같이 파일이 생성이 된다.
you.pub 파일은 외부에 공개가 되도 상관 없는 public key 이고, you 파일은 외부에 공개가 되면 안되는 private key 이다.

 

~/.ssh
❯ ls
you     you.pub

ssh-add 명령어를 통해 ssh key를 등록해준다.

$ ssh-add /Users/you/.ssh/you
$ ssh-add -l
~~~~ youremail@example.com (RSA)

 

Register SSh key in Github

github에서 해당 계정으로 로그인 후 settings → SSH and GPG keys 으로 이동 후 New SSH key 버튼을 클릭한다.

방금 전에 생성했던 파일 중 .pub 으로 끝나는 public key를 추가하면 된다.

$ cat /Users/you/.ssh/github_me.pub
ssh-rsa ~~~~~ youremail@example.com

Add ssh config

여러개의 ssh key를 사용하기 위해선 ~/.ssh/config 파일에 key를 등록해 줘야 한다. Host를 github.com으로 적어두면 github.com에 접속할 때는 IdentityFile에 정의된 key를 사용하게 된다.

vi ~/.ssh/config

# 개인용 계정
Host you  
   HostName github.com
   User git
   IdentityFile ~/.ssh/you

# 회사용 계정
Host work  
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_rsa_work

Connect Test

해당 계정에 접근 가능한 프로젝트를 clone 한다. git@github.com 부분을 git@Host에 설정한 이름으로 교체해서 사용하면 된다.

git clone git@you:yourgitaccountname/projectname.git

해당 프로젝트에 이동 후 다음 명령어를 실행한다.

~/workspace/project
❯ ssh -T git@github.com
Hi yourgitname! You've successfully authenticated, but GitHub does not provide shell access.

 

성공 ~ ~ ! ⭐️

'Javascript' 카테고리의 다른 글

prototype  (0) 2019.08.28
javascript - this  (0) 2019.08.12
Javascript 객체 생성  (1) 2019.08.02