個人でも会社でも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】はHost
がpte_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つの別々のアカウントへ接続することが可能になります。