즐코

[git] 한 컴퓨터에서 깃헙 계정 여러 개 사용하기! 본문

환경설정

[git] 한 컴퓨터에서 깃헙 계정 여러 개 사용하기!

YJLEE_KR 2023. 2. 23. 00:02

한 컴퓨터에서 github 계정을 2개 이상 쓸 때 어떻게 해야할까?!

예전에 설정해놨었는데, 터미널이 망가지고 새로 깔면서 설정이 날라가 버렸기에 다시 찾지 않게끔 기록해두려고 한다.

 

1. SSH Key 생성하기

1. 회사 계정 / 개인 계정 2개를 생성해준다! 숨김 폴더인 .ssh 상에 기존 ssh key 가 있는지 확인한다. 난 깔끔하게 가기 위해 id_rsa, id_ras.pub를 다 삭제해줬다.

cd ~/.ssh
ls -al

2. ssh key를 생성하기 위해 아래 명령어를 쳐준다. 깃헙에서 사용하는 email과 이제 만들어줄 ssh key의 이름을 먼저 정한다.

- 회사 계정 : 회사 깃헙아이디@회사이메일주소 && id_rsa_jane

- 개인 계정 : 내 깃헙아이디@이메일주소 && id_rsa_yj

ssh-keygen -t rsa -C "회사이멜주소" -f "id_rsa_jane"
ssh-keygen -t rsa -C "개인이멜주소" -f "id_rsa_yj"

 3. 아래와 같이 공개키+개인키를 만들고 있고 구문을 넣으라고 하는데 엔터치면서 생략하면 된다. (salt 같은 걸 넣어주는 듯?)

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

그러면 아래와 같이 각각의 공개키(.pub)와 개인키가 생성되었다.

 

공개키 + 개인키 세트!

 

4. 키 관리를 위해 ssh-agent에 새로 생성한 키들을 저장해준다. 

아래 명령어로 백그라운드에 ssh-agent를 실행 시켜준다. 참고로 pid 값은 매번 바뀐다고 한다.

$ eval "$(ssh-agent -s)"
> Agent pid 59566

아래 명령어로 각각 생성한 개인키를 ssh-agent에 저장해준다.

ssh-add ~/.ssh/id_rsa_jane 
# 출력 Identity added: /Users/yjlee/.ssh/id_rsa_jane (회사계정주소)
ssh-add ~/.ssh/id_rsa_yj
# 출력 Identity added: /Users/yjlee/.ssh/id_rsa_yj (개인계정주소)

아래 명령어로 ssh-agent에 정상적으로 ssh 개인키가 추가되었는지 재확인 해준다.

ssh-add -l

# 출력 : 3072 SHA256:ky... 회사계정주소 (RSA)
# 출력 : 3072 SHA256:YL... 개인계정주소 (RSA)

2. 깃헙에 새로운 SSH 공개 Key 추가해주기

1. 공개키 복사를 위해 위에서 생성된 id_rsa_jane.pub 와 id_rsa_yj.pub를 복사해야한다.

복사하거나 편집기를 열어서 복사하는 방법이 있다.

# 복사하기
pbcopy < ~/.ssh/id_rsa_jane.pub
pbcopy < ~/.ssh/id_rsa_yj.pub

# 편집기 열기
code ~/.ssh/id_rsa_jane.pub
code ~/.ssh/id_rsa_yj.pub

2. 복사를 했으면, 깃헙 계정 - 프로필 클릭 - Settings - SSH and GPG keys 클릭 -> New SSH Key 클릭 -> 아래 두 항목 작성하기

- Title : 기억하기 좋은 공개키 이름, 별명 적기

- Key : 위에서 복사한 공개키 넣기

 

 

계정별로 실행해준다.

 

3.  SSH config 파일 설정 후 테스트

1. config 파일에 들어가서 환경 설정해주기

cd ~/.ssh/config
vi config

2. 각 계정마다 환경 설정을 해주는데, 되도록 아래의 양식을 지켜준다. 특히 Host 부분을 잘 지을 것 

#jane 계정에 대한 SSH 설정
Host github.com-jane
    HostName github.com
    User 유저 아이디
    IdentityFile ~/.ssh/id_rsa_jane
    
#yj 계정에 대한 SSH 설정
Host github.com-yj
    HostName github.com
    User 유저 아이디
    IdentityFile ~/.ssh/id_rsa_yj

 

  • Host github.com-jane : 나중에 ssh로 연결할 때 Host 지시자로 설정한 값을 사용하니 구분이 쉽고 편한 이름으로 작성한다.
  • HostName github.com : github 도메인
  • User 유저 아이디 : github 사용자 아이디 (github 아이디로 설정)
  • IdentityFile ~/.ssh/id_rsa_jane : 위에서 만든 개인키 경로 

나중에 SSH 연결을 할 때 Host에 설정해둔 값인 github.com-jane 으로 호출하면, 지정한 HostName(깃헙)에 접속해서 User로 지정해둔 깃헙 계정을 가지고 IdentityFile 에 적어둔 개인키 경로에서 그 개인키를 참조해 인증하는 방식이다.

 

3. 아래 명령어로 ssh 연결 테스트

ssh -T git@github.com-jane
ssh -T git@github.com-yj

# 출력 : Hi 깃헙 계정! You've successfully authenticated, but GitHub does not provide shell access.

 

4. SSH 로 깃헙 레파지토리 클론 받아보기 

1. 클론할 레파지토리 - code 클릭 후 HTTPS가 아니라 SSH 클릭해서 복사하면 아래와 같이 나올 것이다.

git@github.com:회사깃헙이름/깃헙레파지토리.git

2. 이걸 이제 아래와 같이 바꿔서 클론해준다.

github.com 를 위의 ssh config 파일의 Host로 지정한 github.com-jane 를 넣어준다!

기가 막히게 클론된다.

$ git clone git@github.com-jane:회사깃헙이름/깃헙레파지토리.git

3. 커밋이나 푸쉬 하기 전 user.name과 user.email을 확인해서 수정해주고 커밋하고 푸쉬해야한다.

git config user.name 회사계정아이디
git config user.email 회사계정이메일

# 전역으로 설정하고자 할 때 --global로 설정
git config --global user.name 
git config --global user.email 

# 설정 잘 됐는지 확인하려면 아래 명령어로 확인
git config user.name
git config user.email

 

주의할점!

새로운 레파지토리 생성 후 remote 연결 후 push 할 때,

git remote add origin git@github.com:깃헙레파지토리 주소 어쩌고.git 대신 git clone 하는 것처럼

git remote add origin git@github.com-yj:깃헙레파지토리 주소 어쩌고.git 라고 해야 Permission denied 에러가 나지 않는다.

 

 

 

아래 포스팅을 참고하였다!

https://usingu.co.kr/frontend/git/%ED%95%9C-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C-github-%EA%B3%84%EC%A0%95-%EC%97%AC%EB%9F%AC%EA%B0%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/

Comments