이 포스트에서는 SSH key, ssh config 와 ssh-keygen를 사용하여 여러 개의 Github 계정을 사용하는 방법을 알아본다.
Index
- 깃허브 계정 여러 개 세팅하기
- 매번 해줘야 하는 작업들
- 레퍼런스
깃허브 게정 여러 개 세팅하기
디렉터리 세팅하기
복수의 깃허브 계정을 사용 할 때, 각 계정들의 root source directory를 나누어두면 관리적 측면에서도, git config 설정을 할 때에도 더 편리하다.
디렉터리 예시
.
└── home
├── office
└── personal
ssh 키 발급
Step 1 사용할 계정들의 키 발급
|
|
Step 2 로컬의 ssh-agent 에 발급받은 키 연결:
|
|
위에서 연결한 ssh 키 정보들은 ssh-add -l
로 확인이 가능하다.
Step 3 ssh config 작성
발급받은 키들과 깃허브 계정 정보를 로컬 단에서 연결을 하기 위해 .ssh/config 에 관련 정보들을 작성을 한다.
.ssh/config
|
|
ssh 키 깃허브에 등록
ssh-keygen 결과물
id_rsa.pub
- 외부로 공개되는 공개키이다.
- github에 등록되는 키다.
- 파일 끝을 보면 이메일을 확인할 수 있다.
id_rsa
- 외부로 공개되면 안되는 비밀키이다.
id_rsa.pub 에시
|
|
github setting 페이지로 이동
SSH and GPG Keys 항목에서 New SSH key 등록
office를 위한 id_rsa_personal.pub
와 id_rsa_office.pud
를 각각 등록해준다.
계정 정보 명시
Github에서 사용하는 name과 email을 별도로 설정해주지 않으면 개인 리포지토리에 올릴 커밋의 작성자가 회사 계정으로 되어있거나, 권한이 없다며 push를 할 수 없다. 떄문에 각각 계정별로 정보를 명시해줘야 한다.
계정 정보 명시 시나리오 default: personal
- home과 office 디렉터리에 각각 .gitconfig 파일을 하나씩 만들어준다.
- home의 .gitconfig에 personal 계정의 name과 email을 입력해준다.
- office 의 .gitconfig를 불러오는 설정을 추가해준다.
- office의 .gitconfig에 회사 계정의 name과 email을 입력해준다.
home .gitconfig
|
|
office .gitconfig
|
|
완성된 디렉터리 에시
.
└── home
├── .gitconfig
├── office
│ └── .gitconfig
└── personal
매번 해줘야 하는 작업들
레포지토리 주소 수정
.ssh/config 에서 연결할 Host를 계정별로 분기해서 각각 github.com-personal
과 github.com-office
로 구분을 했다. 때문에 매번 레포지토리를 만들거나, 클론할 때 구분하는 작업을 해줘야한다. git remote set-url 로 레포지토리를 연결할 떄도 똑같은 형식으로 해줘야 한다.
기존 url
|
|
수정 url
|
|
set-url 예시
|
|