한 컴퓨터에서 github ssh로 여러 계정 사용하기
예전에는 회사 끝나고는 그냥 개인 윈도 랩탑을 사용했는데 요즘은 맥이 편해서 저 윈도우는 쓰기가 힘들더라고요. 그래서 요즘은 회사 맥으로 일 끝나고도 공부나 유튜브를 보고 있었습니다. 그러던 중 개인 프로젝트를 해보려고 개인 깃 어카운트를 통해서 리포를 새로 시작하려는데 계속 Permission 문제가 생겨서 찾아보고 성공적으로 git push --set-upstream origin master 를 성공해서 글로 남겨두려고 합니다.
github ssh키 새로 만들기
먼저 원래 사용하는 ssh는 그냥 내버려 두고 새로 필요한 ssh key를 만들어 보겠습니다.
아래와 같이 새로운 ssh를 만들어 줍니다.
ssh-keygen -t ed25519 -C "your_email@example.com"
그럼 아래처럼 path를 입력해 줍니다. 이미 같은 알고리즘으로 ssh를 썼다면 아마 이미 같은 이름이 있을 테니 새롭게
/Users/you/. ssh/id_personal처럼 정해 줍니다.
Enter a file in which to save the key (/Users/you/.ssh/id_algorithm): [Press enter]
다음으로 passphrase를 설정해 줍니다.
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
새로 생성된 키 github 등록
pbcopy < 만든키이름.pub
이제 ~/.ssh로 가서 새로 만든 키를 시스템에 등록해주러 갑시다. 아래 링크로 가서 New SSH key를 누르고 붙여 넣기를 해줍시다.
https://github.com/settings/keys
이제 ssh config를 조금 바꿔 줘야 합니다. 아래처럼 config를 vi로 열어 줍시다.
vi ~/.ssh/config
이미 github를 사용하고 있으면 기본 설정으론 아래와 같을 것입니다. 모든 호스트는 기본 ssh 키인
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
아래처럼 *를 work로 바꿔 주고 다음 새로 만든 키를 personal로 지정 해 줍니다.
Host work
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
Host personal
Hostname github.com
User git
IdentityFile /root/.ssh/id_personal_ed25519
ssh-key를 ssh-agent에 등록하기
ssh-add ~/.ssh/id_ed25519
ssh-add ~/.ssh/id_personal_ed25519
ssh agent에 키가 등록되었는지 확인해보기
ssh-add -l
만약에 내가 입력한 키들이 보인다면 성공
리포 가서 origin url 변경해주기
git remote add origin git@personal:username/repo-a.git
이상으로 모든 설정이 끝이 났습니다. 이제 회사 컴퓨터에서도 퍼스널 프로젝트를 할 수 있게 되었습니다. 일하면서도 많은 공부를 하셔서 좋은 개발자가 되길 바라겠습니다.
위에 방법들이 안될 경우 시도해 볼만한 방법들
sshCommand를 직접 config파일에 넣어 버리는 방법이 있습니다.
git config --add --local core.sshCommand 'ssh -i <<<PATH_TO_SSH_KEY>>>'
설정이 성공적으로 완료 되었다면 .git/config 파일에 아래 처럼 방금 입력한 ssh key path가 보있것 입니다.
sshCommand = ssh -i ~/.ssh/id_ed25519...