October 20, 2020
하나의 기기에서 여러 개의 깃허브 계정을 사용해야 할 일이 있다. 회사에서는 mac을 쓰고 집에서는 윈도우를 쓰는데, 사용법이 많이 다르다 보니 switch하는 게 불편했다. 그래서 맥북에서 개인 계정과 회사 계정 두 개를 쓰기로 했다. 찾아본 대로 설정을 하고 개인 계정으로 사용하다 회사 계정으로 변경한 걸로 알고 커밋을 했는데 개인 계정으로 커밋해버리는 실수를 해버렸다. 여러 번의 시도를 해서 계정을 변경할 수 있게 되었고 깃허브에 임시 레포지토리를 생성해서 다른 username으로 커밋되는 걸 확인했다.
두 개의 깃허브 계정을 준비해준다.
각 계정의 이메일로 ssh 키를 생성한다.
ssh-keygen -t rsa -b 4096 -C "userid@gmail.com"
키를 저장할 파일 이름을 입력한다.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): id_rsa_personal
이미 있는 idrsa 파일과 겹치지 않게 idrsa 파일을 생성한다. (idrsapersonal, id_rsa)
회사 계정의 ssh 키를 이미 생성했었기 때문에 idrsawork 대신 id_rsa로 사용했다.
키를 기기에 저장한다.
eval "$(ssh-agent -s)"
ssh-add -K ~/.ssh/id_rsa
생성된 키를 복사한다.
pbcopy < ~/.ssh/id_rsa.pub
각 계정으로 github.com에 들어가 Settings > SSH and GPG keys > New SSH Key > 붙여넣기
.ssh 안의 config 파일에 다음과 같이 작성한다.
Host work
HostName github.com
User git
IdentityFile /.ssh/id_rsa
Host personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
file 이름만 맞추고 나머지는 그대로 입력한다.
계정은 다음과 같이 변경한다.
git config user.name 계정아이디
git config user.email 이메일
변경 확인을 위해 다음과 같이 입력하면 각각 user name과 user email이 출력된다.
git config user.name
git config user.email
변경 후 커밋하면 깃허브에 변경된 계정으로 커밋되는 걸 확인할 수 있다.