본문 바로가기

개발 도구/Bitbucket

[ Bitbucket ] Repository 마다 다른 SSH key 사용하기

반응형

 

Bitbucket에서 다양한 곳에 SSH key를 사용합니다.
하지만 URL은 bitbucket.org 하나 입니다. 어떻게 다양한 key를 사용해서 소스를 관리할 까요?

.ssh/config 파일을 사용하면 같은 Bitbucket 서버(bitbucket.org)라도 리포지토리별로 다른 SSH Key를 설정할 수 있습니다.

다만 기본적으로 bitbucket.org는 하나의 호스트명이기 때문에,
이를 가상 HostName(alias) 으로 구분해서 설정하는 방식이 필요합니다.


1. 예시: Repository마다 다른 SSH 키 사용하기

1. .ssh/config 설정

# 리포지토리 A 전용 키
Host bitbucket-repo-a
  HostName bitbucket.org
  User git
  IdentityFile ~/.ssh/id_rsa_repo_a
  IdentitiesOnly yes

# 리포지토리 B 전용 키
Host bitbucket-repo-b
  HostName bitbucket.org
  User git
  IdentityFile ~/.ssh/id_rsa_repo_b
  IdentitiesOnly yes

2. 리포지토리 주소를 설정할 때:

.git/config 또는 git clone 시 다음처럼 사용해야 합니다:

# 리포 A
git clone git@bitbucket-repo-a:<workspace>/<repo-a>.git

# 리포 B
git clone git@bitbucket-repo-b:<workspace>/<repo-b>.git

이렇게 하면 같은 Bitbucket 서버라도 서로 다른 키를 사용하게 됩니다.

bitbucket-repo-b 를 기준으로 config 파일에서 설정 정보를 찾아 사용합니다.
bitbucket-repo-b 는 HostName으로 대체 됩니다.

IdentitiesOnly 를 yes 로 설정해야 설정된 또는 저장된 다른 key를 사용하지 않고 해당 key만 사용합니다.


2. 정리

항목 설명

기본 Bitbucket은 기본적으로 bitbucket.org라는 동일 호스트 사용
문제 기본 설정에선 하나의 SSH 키만 적용됨
해결 .ssh/config에 Host alias를 만들어 분기
주의 git remote URL에서 Host alias를 반드시 사용해야 함

 

반응형