2014-04-10

複数の Github アカウントを使う方法

GitHub は一人が複数のアカウントを持つことを良しとしていない。とはいえ、何らかの事情で複数のアカウントを取得する人もいると思う。例えば、個人と会社でアカウントを分けなければいけない場合など。

ここでは仮に ataka-private と ataka-work という 2 つのアカウントを取得した場合を考えてみる。

デフォールトは仕事用

仕事用アカウントで big-project リポジトリーを作成したとする。この場合、git clone/pull/push は次のようになる。

$ git clone git@github.com:ataka-work/big-project.git
$ git pull git@github.com:ataka-work/big-project.git
$ git push git@github.com:ataka-work/big-project.git

仕事用の設定は特に問題ない。ところが、同じ様に ataka-private アカウントに git でアクセスすることが出来ない。

プライベート用の設定

まず、プライベート用の ssh キーを作る。

$ ssh-keygen -C ataka@private

デフォールトでは id_rsa というファイル名になるけれど、ここは id_rsa_private という名前に変えておく。github の ataka-private アカウントに id_rsa_private.pub の中身を登録。

ataka-private アカウントにアクセスするのに、id_rsa_private を使う様、~/.ssh/config に次の設定を追加する:

Host github.com-ataka-private
  HostName github
  User git
  IdentityFile ~/.ssh/id_rsa_private

ataka-private アカウントにある misc プロジェクトを git clone してみよう。github が推奨するように remote を設定する。ただし、github が提示する URL に一つ変更を加える。

$ git remote add origin git@github.com-ataka-private:ataka-private/misc.git

これで、clone/pull/push が出来るようになる。

$ git clone git@github.com-ataka-private:ataka-private/misc.git
$ git pull origin master
$ git push origin master

アカウントの数が増えても、同様に対処していけばいいだけ。

あとがき

ここでは仕事用をデフォールトにしたけど、逆にしてしまっても良いし、.ssh/config に仕事用の設定を追加してもいい。ま、どうしても複数アカウントを作らなきゃいけない場合に参考にして頂ければ嬉しい。

ref

No comments:

Post a Comment