프로젝트를 하다 보면 서로 다른 깃허브 계정으로 작업해야 할 때가 있다.
이때 ssh를 이용하면 CLI에서 서로 다른 계정으로 깃허브 관리를 할 수 있다.
ssh key 생성
$ ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/사용자 이름/.ssh/id_rsa): id_rsa_me
~/.ssh
로 이동 후 위 명령어로 ssh key를 생성한다.
메일에 개인 프로젝트라면 개인 계정 입력하고, 회사 프로젝트라면 회사 계정을 입력한다. 필자는 key 이름을 개인 프로젝트일 경우 id_rsa_me
, 회사 프로젝트일 경우 id_rsa_[회사이름]
으로 생성했다.
입력을 완료했다면 id_rsa_me.pub
, id_rsa_me
파일이 생성된다.
생성한 ssh key를 ssh-agent에 등록
$ eval "$(ssh-agent -s)"
$ ssh-add -K ~/.ssh/id_rsa_me
위 명령어로 ssh-agent를 실행 후 ssh key를 등록한다.
github에 공개키 등록
깃허브 설정에 들어가서 좌측 사이드바 메뉴의 SSH and GPC Key에 들어간다. 여기서 New SSH key 버튼을 클릭하여 위 과정에서 생성한 *.pub
파일의 내용을 복사해서 넣는다.
$ cat ~/.ssh/id_rsa_me.pub | pbcopy
위 명령어를 이용하면 직접 복사하지 않아도 복사가 된다.
현재 과정을 개인 계정과 회사 계정 모두 ssh key를 등록한다.
ssh config 설정
github에서 ssh key로 접근할 수 있게 해 주기 위해 설정해야 한다.
$ vi ~/.ssh/config
# 개인 계정
Host github.com-me
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_me
# 회사 계정
Host github.com-[회사이름]
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_[회사이름]
- Host: 저장소 주소를 불러올 때 쓰임
- IdentityFile: ssh key의 경로
github에서 ssh로 클론 할 땐 git@github.com:[username]/respostory.git
가 아닌 git@github.com-me:[username]/respostory.git
로 해야 한다.
.git/config 설정
클론 한 리포지토리로 이동한다.
$ vi [repostiory path]/.git/config
[remote "orgin"]
url = git@github.com:[GithubID]/[RepositoryName].git
url 부분이 github.com
로 되어있을 텐데 github.com-me
로 수정하고 저장한다.
테스트
깃허브 저장소에 연결된 로컬 터미널에서 아래 명령어를 수행해 ssh key가 잘 동작하는지 확인할 수 있다.
$ ssh -T git@github.com-me
Hi [GithubID]! You've successfully authenticated, but GitHub does not provide shell access.
위와 같이 나오면 ssh 설정이 잘 된 것이다.
참고
'Git' 카테고리의 다른 글
[Git] username과 email 설정 (0) | 2022.11.11 |
---|