반응형
하나의 맥북에서 다른 두 개의 깃헙 계정을 사용해 푸시를 하고 싶은 상황이 생겨 알아보니 ssh-key를 사용하면 가능하였다.
1. ssh-key 생성하기
$ cd ~/.ssh
$ ssh-keygen -t rsa -C "{github 계정 이메일}"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): {key 이름 지정}
$ ls
-rw------- 1 hongseokjun staff 411B 3 7 00:35 id_rsa_work
-rw-r--r-- 1 hongseokjun staff 102B 3 7 00:35 id_rsa_work.pub
-rw------- 1 hongseokjun staff 411B 3 7 00:35 id_rsa_personal
-rw-r--r-- 1 hongseokjun staff 102B 3 7 00:35 id_rsa_perosnal.pub
~/.ssh
디렉토리로 이동 후 두 번째 명령어를 실행하고{key 이름 지정}
부분에 원하는 key 이름을 입력해준다. (ex. id_rsa_work)- 위의 과정을 필요한 계정만큼 반복한다. (여기서는 두 개를 예로 듦.) 끝이나면
id_rsa_work
,id_rsa_work.pub
,id_rsa_personal
,id_rsa_personal.pub
라는 이름의 파일들이 생성된 것을 확인한다.
2. ssh-agent에 ssh-key 등록
$ ssh-add -K ~/.ssh/id_rsa_work
$ ssh-add -K ~/.ssh/id_rsa_personal
3. GitHub에 공개키 등록
- 로컬에서 생성한 공개키를 복사한다.
$ pbcopy < ~/.ssh/id_rsa_work.pub
- github에 ssh-key에 해당하는 계정으로 로그인
- github 계정의
settings - SSH and GPG keys
메뉴를 클릭한다. New SSH key
를 클릭title
에는 key에 대한 이름을 지정하고key
에 1번에서 복사한 내용을 붙여넣어 준다.- 필요한 계정만큼 반복해준다.
4. ssh config
$ cd ~/.ssh
$ vi config # 없다면 생성
# 아래 내용을 입력
Host github.com-work
HostName github.com
User work
IdentityFile ~/.ssh/id_rsa_work
Host github.com-personal
HostName github.com
User personal
IdentityFile ~/.ssh/id_rsa_persanl
- Host : 저장소를 구분하는 일종의 key
- IdentityFile : ssh-key를 지정
- ssh 테스트 해보기
$ ssh -T git@github.com-work
Hi {GithubID}! You've successfully authenticated, but GitHub does not provide shell access.
- 아래 문구가 뜬다면 정상이다.
5. 특정 프로젝트의 git config
$ vi {프로젝트}/.git/config
...
[user]
email = {푸시할 계정의 이메일}
git
의 global config가 설정되어있는 경우, 위와 같은 설정을 해주어야 해당 계정으로 푸시를 할 수 있음.
6. remote 설정
github에서 git ssh
로 clone을 받을 수 있다. : git@github.com-work:work/{프로젝트}.git
또는 이미 remote
가 지정되어 있는 상태라면 아래 명령어를 통해 ssh로 바꿀 수 있다.
$ git remote set-url origin git@{Host}:{User}/{프로젝트}.git
ex. git remote set-url origin git@github.com-work:work/{프로젝트}.git
- 참고
반응형