본문 바로가기

기타

깃허브에 2개 이상의 계정으로 접속하기

깃허브에 계정을 1개만 사용하는 경우가 대부분이지만, 회사 계정과 개인 계정을 하나의 컴퓨터에서 사용하는 경우도 있습니다. 저처럼 실제 계정 외에 테스트 계정이 필요한 경우도 있고요.

그런데 깃허브 원격 저장소를 한번 추가하면 다른 계정으로  접속하려고 해도 처음 계정 정보를 가지고 있기 때문에 다른 계정의 push 권한을 가지지 못합니다. 깃허브에서 2가지 계정을 각각 사용하려면 SSH 접속을 사용하면 됩니다.

 

새로운 SSH 키 만들기

1) Git Bash를 실행한 후 다음 과정을 따라서 SSH 키를 생성합니다. 

cd ~/.ssh
ssh-keygen -t ed25519 -C "메일주소"
  • Enter file in which to save the key : ssh 키 파일 이름을 지정할 수 있습니다. 그냥 Enter 키를 누르면 id_ed25519라는 이름을 만들어집니다.
  • Enter passphrase : ssh 키에 암호를 지정할 수 있습니다. 그냥 Enter 키를 누릅니다.

 

Git Bash에서 ls 명령으로 살펴보면 퍼블릭키(id_ed25519.pub)와 프라이빗키(id_ed25519)가 하나의 쌍으로 생성되어 있을 것입니다.

 

config 구성하기

기존에 있던 계정과 함께 두번째 계정도 SSH에 접속할 수 있도록 config 환경을 수정해야 합니다. Git Bash에서 다음과 작성해서 vi 편집기를 엽니다.

vi config

 

vi 편집기가 열리면 [A]나 [I]를 눌러 편집 상태로 바꾼 후 다음과 같이 작성합니다. 여기에서 두번째 계정 부분이 새로 추가하는 SSH 접속 정보입니다.

  • Host : 다른 계정과 구별할 수 있는 이름을 지정합니다. 나중에 깃허브에 접속할 때 사용할 이름이므로 기억하기 쉬운 이름으로 지정하세요.
  • User : 반드시 git으로 지정하세요. 사용자 이름을 사용하면 안됩니다.
  • IdentityFile : 방금 만든 SSH 키 파일 이름을 지정합니다. 
# Main account
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

# Second account
Host github-peacein
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519
~

 

 

ssh-agent에 SSH 키 추가

우선 ssh-agent를 실행한 후 프라이빗 키를 추가합니다.

eval "$(ssh-agent -s)"
ssh-add id_ed25519

 

제대로 추가되면 다음과 같이 나타납니다.

 

 

깃허브에 SSH 키 추가하기

이제 남은 것은 깃허브 계정에 SSH 퍼블릭키를 등록하는 것입니다. 우선 Git Bash에서 퍼블릭키의 내용을 클립보드로 복사합니다. 퍼블릭키 파일은 확장자가 .pub입니다.

clip < id_ed25519.pub

 

깃허브에서 두번째 계정으로 로그인합니다. 그리고 깃허브 화면 오른쪽에 있는 프로필 아이콘을 클릭한 후 [Settings]를 선택합니다.

 

 

왼쪽 메뉴에서 [SSH and GPG keys]를 선택한 후 오른쪽에서 [New SSH key]를 클릭합니다.

내용을 입력한 후 [Add SSH key]를 클릭합니다.

  • Title : 다른 키와 구별할 수 있는 이름을 입력합니다.
  • Key type : 기본값 Authentication Key 그대로 둡니다.
  • Key : [Ctrl] + [V]를 눌러 복사한 SSH 키를 붙여넣습니다.

SSH 접속 테스트

 필요한 설정을 모두 마쳤습니다. 이제 다음과 같이 입력해서 SSH 접속이 제대로 되는지 테스트해 보세요.

이 때 주의할 것은 git@ 다음에 사용할 호스트 이름입니다. 앞에서 config 파일을 만들 때 지정했던 두번째 계정의 Host 이름을 사용해야 합니다.

ssh -T git@github-peacein

제대로 접속된다면 다음과 같은 메시지가 나타납니다.

 

SSH 접속 주소로 저장소 연결하기

이제 두번째 계정에서 저장소를 만들고 SSH 주소로 연결할 수 있습니다. 단, 이 때도 주의할 것은 host 이름입니다. .ssh/config 파일에서 두번째 계정의 Host 이름을 지정했었죠? 잊어버리면 안됩니다.

저장소를 만든 후 저장소 주소를 확인할 때 [SSH]를 클릭합니다.

예를 들어, test라는 저장소를 만들었다면 제 계정이 peacein이므로 기본적인 주소는 다음과 같이 나타납니다. 

git@github.com:peacein/test.git

 

하지만 제가 이 계정의 Host 이름을 github-peacein 이라고 했기 때문에 접속 주소는 다음과 같이 사용해야 합니다.

git@github-peacein:peacein/test.git

 

여기까지 잘 따라 왔다면 기존의 계정 뿐만 아니라 두번째 계정으로도 얼마든지 깃허브에 접속하고 풀/푸시할 수 있습니다.