Github SSH 여러개 사용하기

ETC

Language :

안녕하세요 Lovefield입니다.

최근 회사에서 한 컴퓨터로 Github 계정 두 개를 사용해야 하는 일이 생겼습니다. https통신은 사용하고싶지 않았고 SSH Key를 이용한 통신을 하고 싶었기에 여러 방면으로 찾아보았습니다. 이번 글은 제가 성공한 방법에 대해서 알려드리려 합니다.

1. SSH 키 생성

MAC을 기준으로 cd ~/.ssh를 사용해 폴더를 이동합니다. 그 다음 2개의 키를 생성합니다.

ssh-keygen -t ed25519 -C “first@email.com” -f first-ssh
ssh-keygen -t ed25519 -C “second@email.com” -f second-ssh

정상적으로 실행이 되었다면 총 4개의 파일이 생성됩니다.

  • first-ssh
  • first-ssh.pub
  • second-ssh
  • second-ssh.pub

이제 ssh-add를 사용하여 키를 등록해줍니다.

ssh-add first-ssh && ssh-add second-ssh

등록이 잘 되었다면 ssh-add -L 명령어를 통해 확인이 가능합니다.

2. Github 계정에 키 등록

Github 사이트로 들어가 "setting > Access > SSH and GPG keys" 항목에 들어갑니다.

 2023-07-12 12.45.08.png

오른쪽 위의 New SSH key를 누른뒤 앞서 등록한 SSH를 기입해줍니다. Key에 기입해야하는 내용은 다음 명령어를 통해 알 수 있습니다.

cat first-ssh.pub
 2023-07-12 12.51.28.png

위의 과정을 각각의 계정에서 해줍니다.

3. 설정

이제 config 파일을 수정해야합니다. 다음 명령어로 config 파일에 접근합니다.

vi ~/.ssh/config

내용은 아래와 같습니다.

Host first.github.com
  HostName github.com
  AddKeysToAgent yes
  UseKeychain yes
  User git
  IdentityFile ~/.ssh/first-ssh
  IdentitiesOnly yes
Host second.github.com
  HostName github.com
  AddKeysToAgent yes
  UseKeychain yes
  User git
  IdentityFile ~/.ssh/second-ssh
  IdentitiesOnly yes

설정이 다 되었다면 이제 테스트를 할 차례입니다. 다음 명령어를 이용해 각각 올바른 계정 이름이 나오는지 확인합니다.

ssh -T git@first.github.com
ssh -T git@second.github.com

올바른 명칭이 내려온다면 설정이 잘 되었습니다. 이제 Github에서 클론을 사용할때는 각각 아래의 주소를 사용해야합니다.

git clone git@first.github.com:userName/RepoName
git clone git@second.github.com:userName/RepoName

로컬에서 Git을 사용할때 서명이 겹칠 수 있으니 각각의 레포에서 별도로 설정을 해줘야 합니다.

git config user.email “second@email.com”
git config user.nickname “second”

이제 로컬에서 Git을 이용하시면 됩니다. 감사합니다.

Lovefield

Web Front-End developer

하고싶은게 많고, 나만의 서비스를 만들고 싶은 변태스러운 개발자입니다.