테크

Git 저장소 별 SSH Key 별도 지정

나는_콧구멍 2024. 3. 20. 00:02

Git 을 사용하다 보면 저장소 별 SSH Key 를 별도로 지정해야되는 경우가 있다.

저장소가 같은 도메인을 사용 할 경우 저장소별 다른 SSH Key를 사용하는 아래 2가지 방법에 대해서 알아보자.

두가지 방법은 "SSH Config 를 사용해서 별칭으로 Host 등록" 과 "git config 각 저장소에 직접  SSH Key 파일 등록" 방법으로 각각 장단점이 있기에 자신에 맞는 방법을 사용해보자.

그리고 .gitconfig includeIf 가능으로 디렉토리별 SSH key파일을 별도로 등록할수 있는 기능도 있으나 내가 많이 사용하지 않는 방법으로 여기서는 다루지 않겠다.

 

원활한 설명을 위해 아래 같은 환경을 가정 후 설명을 진행하겠다.

  1. 첫번째 Git 저장소
    • 주소 : github.com:projcet-1/repo-1.git
    • SSH Key File : ~/.ssh/01_rsa_private
  2. 두번째 Git 저장소
    • 주소 : github.com:project-2/repo.git
    • SSH Key File : ~/.ssh/project02_rsa_private

SSH Config 를 사용해서 별칭으로 Host 등록

## ssh config 수정
vi ~/.ssh/config
## ~/.ssh/config 파일 수정
Host repo-1
    HostName github.com
    IdentityFile ~/.ssh/project01_rsa_private
    IdentitiesOnly yes

  Host repo-2
    HostName github.com
    IdentityFile ~/.ssh/project02_rsa_private
    IdentitiesOnly yes
## Git Clone 진행
git clone git@repo-1:project-1/repo-1.git
git clone git@repo-2:project-2/repo-2.git

git config 각 저장소에 직접  SSH Key 파일 등록

### Git Clone 시 -i 옵션을 사용
## 단 레드헷 계열 기본 Git 패키지에는 -i 옵션이 안될수 있다.
# 첫번째 저장소
git clone -i ~/.ssh/project01_rsa_private git@github.com:github.com:projcet-1/repo-1.git 
# 두번째 저장소
git clone -i ~/.ssh/project02_rsa_private git@github.com:github.com:projcet-2/repo-2.git

Git Clone 시 `-i` 옵션이 지원되지 않는 다면 아래와 같이.

### 첫번째 Git 저장소
## Git SSH 명령 환경변수 선언
export GIT_SSH_COMMAND="ssh -i ~/.ssh/project01_rsa_private"
## Git Clone 진행
git clone git@github.com:github.com:projcet-1/repo-1.git
## Git SSH 명령 환경 변수 해제
unset GIT_SSH_COMMAND
## git 환경설정에 SSH Key 파일을 등록
cd repo-1
git config --local core.sshCommand "ssh -i ~/.ssh/project01_rsa_private"

### 두번째 Git 저장소
## Git SSH 명령 환경변수 선언
export GIT_SSH_COMMAND="ssh -i ~/.ssh/project02_rsa_private"
## Git Clone 진행
git clone git@github.com:github.com:projcet-2/repo-2.git
## Git SSH 명령 환경 변수 해제
unset GIT_SSH_COMMAND
## git 환경설정에 SSH Key 파일을 등록
cd repo-2
git config --local core.sshCommand "ssh -i ~/.ssh/project02_rsa_private"

'테크' 카테고리의 다른 글

Python 버전별 지원 종료일  (0) 2024.02.24
docker on qBittorrent-nox  (0) 2024.02.23
docker cp # 컨테이너와 호스트 간 파일 복사  (0) 2024.02.07