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 に仕事用の設定を追加してもいい。ま、どうしても複数アカウントを作らなきゃいけない場合に参考にして頂ければ嬉しい。
No comments:
Post a Comment