1. HOME
  2. フロントエンド
  3. SSH鍵認証でBitbucketの複数のアカウントを使い分ける方法

SSH鍵認証でBitbucketの複数のアカウントを使い分ける方法

フロントエンド

個人でも会社でもBitbucketのアカウントを持っていて、同じマシンで管理しようとすると鍵認証とBitbucketへのSSHキーの登録だけではダメだったのでメモ。
もちろんBitbucket以外にもGitHubなどのアカウントも同様の手順で複数のアカウントを管理することができます。

SSH鍵の作成

個人的には鍵はアカウントごと、ブロジェクトごとにディレクトリで分けて管理しているのでその方法で手順を紹介します。 もちろん分けずに【xxxxxx_rsa】とかでもOKです。

まずは管理ごとにディレクトリを作成。 今回は【bitbucket.org(会社とか)】【pte_bitbucket.org(プライベート用)】とします。

cd ~/.ssh
mkdir bitbucket.org
mkdir pte_bitbucket.org

ディレクトリ【bitbucket.org】内に鍵を作成

cd bitbucket.org
ssh-keygen -t rsa -C hoge@example.com -f ~/.ssh/bitbucket.org/id_rsa

次に【pte_bitbucket.org】内にに鍵を作成

cd ../pte_bitbucket.org ssh-keygen -t rsa -C hoge@example.com -f ~/.ssh/pte_bitbucket.org/id_rsa

で作成します。 パスフレーズは入力しなくても作成することができますが、お好みで入力することをおすすめします。

これで2つのアカウント用のSSH鍵の作成が終了しました。

configの設定

.ssh/configを設定していきます。

vim ~/.ssh/config
Host bitbucket.org
  HostName bitbucket.org
  User git
  Port 22
  IdentityFile ~/.ssh/bitbucket.org/id_rsa
  IdentitiesOnly yes

Host pte_bitbucket.org
  HostName bitbucket.org
  User git
  Port 22
  IdentityFile ~/.ssh/pte_bitbucket.org/id_rsa
  IdentitiesOnly yes

esc:wqで保存します。
これでconfigの設定が完了しました。

BitBucketへ公開鍵を設定

BitButcketにログイン後、左下の人のアイコンから【Bitbucket setting】を選択


セキュリティーのSSH鍵から鍵を追加を選択

Label: 任意の名前
Key: コピーした公開鍵
をそれぞれ入力します。
コピーは今回のディレクトリ構成では下記のコマンドでクリップボードにコピーができます。

cat ~/.ssh/bitbucket.org/id_rsa.pub | pbcopy
cat ~/.ssh/pte.bitbucket.org/id_rsa.pub | pbcopy

鍵を追加で登録が完了します。

リポジトリごとでリモートのドメインを変更する

ここまでで鍵の登録が終わり【bitbucket.org】の鍵の方は接続することができます。
しかしこのままでは【pte_bitbucket.org】はHostpte_bitbucket.orgになっているため繋がらないのでリモートのドメインの変更が必要になります。

プロジェクト(ex/ pte.dev)など内の.gitのconfigファイルを編集します。

vim pte.dev/.git/config

[remote "origin"]
	url = git@bitbucket.org:[アカウント]/[リポジトリ].git
	fetch = +refs/heads/*:refs/remotes/origin/*

となっている箇所を

[remote "origin"]
url = git@pte_bitbucket.org:[アカウント]/[リポジトリ].git
fetch = +refs/heads/*:refs/remotes/origin/*

に書き換えてesc:wqで保存します。
これでリポジトリごとに2つの別々のアカウントへ接続することが可能になります。


SSH
bitbucket
バージョン管理