회사에서 발급받은 github 계정과 개인 github 계정을 ssh 설정을 통해 커밋시에 원하는 계정으로 커밋 로그 author가 남도록 설정하는데, 나는 GitKraken이라는 git client 툴을 사용하면서 겪은 삽질을 기록 ㅠㅠ한다.
> ssh-keygen -t ed25519 -C "회사@이메일.계정" "~/.ssh"
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/): id_rsa_work
Enter passphrase (empty for no passphrase): <Type the passphrase>
> cat id_ed25519.pub | pbcopy
1)에서 복사한 ssh public key를 붙여넣고 등록
> eval "$(ssh-agent -s)"
> ssh-add -K ~/.ssh/id_rsa_work
--- 여기까지 동일한 방법으로 ~/personal 디렉토리에서 personal ssh key를 id_rsa_me 이름으로 한번 더 생성한다.
[user]
name = InhyeJeong
email = 회사@이메일.계정 # Global로 설정되는 이메일 주소
[includeIf "gitdir:~/personal/"]
path = ~/personal/.gitconfig # 계인 개정에 사용할 이메일 주소
[user]
name = Inhye Jeong
email = 개인@이메일.계정 # 개인 계정에 사용할 이메일 주소
~/.ssh/config 에서 아래와 같이 수정
# 개인 계정
Host github.com-me
HostName github.com
User git
IdentityFile ~/personal/id_rsa_me
# 회사 계정
Host github.com-work
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_work
> ssh -T git@github.com-me
Hi InhyeJeong! You've successfully authenticated, but GitHub does not provide shell access.
위에서 발급한 private, public ssh key를 각각 등록한다.
(id_rsa_work 이름으로 생성한 ~/.ssh에 존재하는 ssh key등록)
connect를 누르면 auth를 설정하는 페이지가 열리는데, 위에서 설정한 ssh key가 등록된 github계정으로 로그인하면 connect라고 초록색으로 연동된 것을 확인할 수 있다.
sso 설정이 안되어 있다면 github 회사 계정 로그인 후, sso인증을 enabled 하면 push, pull이 정상 동작된다. 오예-
clone할 repo에 들어가서 "clone and download" 를 클릭하고, Use ssh를 누른다음 ssh 형식으로 바뀐 url로 클론하면 된다.
command + ,
ssh private, ssh public key를 원하는 계정에 맞게 교체