(2021/07/01追記) この記事の内容は古いです
この手法は、submoduleを運用するときに破綻するので、もっと良い方法を書きました。
https://qiita.com/hikaruna/items/60f2749e2abd3885ac46
account_aとaccount_bでプライベートキーが違うと、git-cloneなどに失敗する。
direnvとgitのGIT_SSH_COMMANDという設定で制御する
ディレクトリ構成
home
├── .ssh/
│ ├── account_a_private_key
│ └── account_b_private_key
├── src_account_a/ # account_aのプロジェクトを配置するディレクトリ
│ └── .envrc
└── src_account_b/ # account_bのプロジェクトを配置するディレクトリ
└── .envrc
src_account_a/.envrc
export GIT_SSH_COMMAND="ssh -i ${HOME}/.ssh/account_a_private_key
src_account_b/.envrc
export GIT_SSH_COMMAND="ssh -i ${HOME}/.ssh/account_b_private_key
こうすると、src_account_a/では、account_aのprivateリポジトリなどに、src_account_b/では、account_bのprivateリポジトリなどにアクセスできる。