github, 여러 repository에 대해 ssh 설정 하기
목차
github 인증을 http로 하면 별 문제가 없습니다만
ssh 인증으로 사용할 때, 만약 자신의 ssh key를 여러 repository에 등록하려고 하면 어떻게 될까요?
아마도 위와 같은 상황이 연출될 것입니다.
이미 해당 ssh key가 다른 repository에 이미 등록되어 이 키를 재활용 할 수가 없는것이죠.
해결방법
방법은 간단합니다. 특정 repository 마다 ssh key를 각각에 맞게 여러개 만들어서
github repository 설정에서 맞게 등록해주면 됩니다.
우선 ssh-keygen 명령을 통해 필요한 ssh key들을 만들어 봅시다.
(참고 Git-서버-SSH-공개키-만들기)
1 | $ ssh-keygen |
이처럼 파일명을 지정해 주지 않으면 id_rsa.pub , id_rsa로 파일이 생성됩니다.
필요한 만큼 ssh key 생성을 하도록 합시다.
그 다음은 특정 repository 마다 ssh key를 지정합시다.
1 | $ vi ~/.ssh/config |
Host 뒤에는 내가 식별하기 쉬운 가상의 path를 알아보기 쉽게 넣어주세요.
Hostname은 실제 github 주소를 입력합니다.
IdentityFile은 각 repository에 사용할 ssh key 파일의 패스를 정확히 입력해주세요.
이제 본인 로컬에 있는 git 프로젝트의 remote를 위에서 설정한 Host로 바꿔주세요.1
2
3
4
5
6$ git remote -v
origin git@github.com:user/project1.git (fetch)
origin git@github.com:user/project1.git (push)
$ git remote set-url origin git@project1.github.com:user/project1.git
project2 도 같은 방법으로 바꿔주도록 합시다.
마치며
http로 하면 되지 뭐하러 이렇게 하느냐고 하실 수 있지만
한 서버에서 여러 프로젝트로 deploy key를 설정할때는 위 방법을 사용하면 되겠습니다.
(서버에서 내 아이디/패스워드를 넣을순 없으니까요)