본문 바로가기
IT/Tip

한 컴퓨터에서 여러개의 Github 계정 설정

by 여우요원 2024. 2. 15.
반응형

 

이 작업은 아래의 다섯 단계를 통해서 수행할 수 있다.

Steps:

  • Step 1 : 모든 계정에 대해서 ssh 키 파일 만들기.
  • Step 2 : ssh 키 파일을 ssh-agent 에 등록하기.
  • Step 3 : ssh 퍼블릭 키를 깃허브에 등록하기.
  • Step 4 : config 파일을 만들고 계정의 항목 설정하기.
  • Step 5 : 각 계정의 repository 를 클론하기.

Step 1

모든 계정에 대해서 ssh 키 파일 만들기.

 

첫째로, .ssh 폴더로 이동한다.

cd ~/.ssh

 

둘째로, ssh 키 파일을 만드는 규칙은 다음과 같다.

ssh-keygen -t rsa -C "your-email-address" -f "github-username"

 -C 뒤에 있는 your-email-address 자리에는 github 의 로그인 이메일 계정을 적는다.

-f 뒤에 있는 github-username 은 ssh 키파일의 이름이다. 

 

만일 개인계정은 abc@gmail.com 이고 회사의 계정은 abc@company.com 이라고 하고, 각각의 이름을 id_home, id_compay 라고 한다면 아래와 같이 적을 수 있다.

ssh-keygen -t rsa -C "abc@gmail.com" -f "id_home"
ssh-keygen -t rsa -C "abc@company.com" -f "id_company"

 

이후 해당 디렉토리에는 아래와 같이 4개의 파일이 생성된다.

id_home

id_home.pub

id_company

id_company.pub


Step 2

ssh 키 파일을 ssh-agent 에 등록하기.

위에서 만들어준 ssh 키 파일을 아래와 같이 등록해준다.

ssh-add -K ~/.ssh/id_home
ssh-add -K ~/.ssh/id_company

 

이후 ssh-add -l 명령어로 등록되어 있는지 확인할 수 있다.


Step 3

ssh 퍼블릭 키를 깃허브에 등록하기.

 

github 의 settings -> SSH and GPG keys 로 들어가면 위에 초록색 버튼 "New SSH Key" 버튼을 누른다.

 

Title 부분에는 임의의 이름을 준다. 예를 들면 id_home 

그리고 key 부분에는 부분에는 ssh 폴더의 id_home.pub 파일의 내용을 복사해서 넣는다.

 

복사하는 방법은 아래와 같다.

 pbcopy < ~/.ssh/id_home.pub

 

위의 방법으로 회사 계정의 github 에서도 같은 방법으로 등록해준다.


Step 4

config 파일을 만들고 계정의 항목 설정하기.

 

ssh 폴더에서 config 파일이 있다면 editor 를 사용하여 오픈한다.

없다면 touch config 라는 명령어로 만들어 준 후 오픈한다.

 

그리고 아래와 같이 작성해준다.

각 항목에서 HomeName 과 User 부분은 그대로 두고,

IdentityFile 부분에 위에서 작성한 key 파일의 각각 회사와 집에 부분에 해당하는 명칭을 적어준다.

그리고 Host 부분에는 githum.com- 뒤에 파일명을 적어준다.

# home account
     Host github.com-id_home
          HostName github.com
          User git
          IdentityFile ~/.ssh/id_home

# company account
     Host github.com-id_company
          HostName github.com
          User git
          IdentityFile ~/.ssh/id_company

Step 5

각 계정의 repository 를 클론하기.

 

각 github 계정의 repository 에서 아래 그림과 같이 리포지토리의 ssh 주소를 복사한다.

 

그리고 원하는 폴더의 위치로 이동하여 아래의 명령어로 레포지토리를 복사할 수 있으며, pull 과 push를 진행할 수 있다.

git clone "복사한 ssh 주소"

여기에서 복사한 ssh 주소를 약간 수정해줘야한다.
git clone git@github.com-{config 파일의 항목명칭부분}:{owner-user-name}/{the-repo-name}.git

 

 


문제점

  • 맥OS sonoma 의 문제인지 다른 문제인지 모르겠지만, 컴퓨터를 리부팅한 후에 ssh-add -l 명령어로 등록된 key 를 보면 나오지 않아서 다시 등록해줘야 제대로 연결이 된다.
  • 해결책 찾음 !
    .zshrc 파일을 열어서 아래 문구를 추가해서, shell 을 열 때마다 실행되도록 할 수 있다.
ssh-add --apple-use-keychain ~/.ssh/id_home
ssh-add --apple-use-keychain ~/.ssh/id_company

 

접속 확인

ssh -T git@github.com-{config 파일의 항목명칭부분}

 

 

ssh -T git@github.com-id_home

ssh -T git@github.com-id_company

로 확인할 수 있다.

참고

 

How To Work With Multiple Github Accounts on your PC

How To Work With Multiple Github Accounts on your PC - work-with-multiple-github-accounts.md

gist.github.com

 

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

After you've checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.

docs.github.com

 

반응형