githubアカウントを使い分ける
仕事用と、個人用。本名と匿名。気分で切り替えたい時もあるでしょう。
そんなときは、githubアカウントを使い分けましょう!
やり方は前から知ってたんですが、なぜかうまくいかなくて諦めていたのですが、もう一回やってみたところ、rsaのスペルミスだったという罠。
ruieはこちらで更新中です。
https://github.com/welovy/ruie
前提
ここでは、githubにすでにアカウントをもってることとします。taroとしましょう。ssh鍵も登録済みで、普段はこちらでgithubを使ってるとします。以下は、同じPCからhanakoというアカウントでgithubを使いたい、というシチュエーションへの開放です。
まずは鍵を作る
まずはメールアドレスが必要です。ここではhanako@mailとしましょう。hanako@mailでgithubアカウントを作成して、ssh鍵を登録します。しかし、taro用に登録した鍵を登録しようとすると、はじかれてしまいます。github側のkeyringに、すでにtaro用として登録されているからなのです。そこで、hanakoさん用の新しい鍵を作りましょう。
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/xxxxx/.ssh/id_rsa): id_rsa.hanako Enter passphrase (empty for no passphrase): Enter same passphrase again:
エンター連発すると既存の鍵を上書きしてしまうなんてことがあるので、バックアップは忘れずに
。パスフレーズは空でつくると、いちいちパスワード聞かれなくて楽ですね。
鍵をgithubに登録
まぁ、ここはいいですね。id_rsa.hanako.pubというファイルの中身をgithubに登録。
切り替えの肝!configファイル
さて、ここがキモです。gitは、ssh認証が必要になれば、sshに鍵をもらいにいくわけですが、デフォルトは~/.ssh/id_rsaを読みにいきます。ここで、ssh側に、ホストに応じて鍵を使い分ける設定を記述してあげることで、鍵の使い分けが可能になります。
以下は、~/.ssh/config というファイルに記述しましょう。
Host github HostName github.com IdentityFile ~/.ssh/id_rsa Host github-private HostName github.com IdentityFile ~/.ssh/id_rsa.hanako
これでssh側の設定はおわり。最後にgit側の設定です。
ホスト名で切り替える
普段、gitのリモートリポジトリの設定は、以下のようにやっていると思います。
$ git remote add origin git@github.com:hanako/hoge.git
ここを、先ほどconfigに記述したホスト名で記述すれば、鍵が変わります。
$ git remote add origin git@github-private:hanako/hoge.git
ちなみに、taroさんで使うときは、@github もしくは普通に@github.comです。
もうひとつ、git側のuser.name, user.emailも忘れずに書き換えましょう。ここのemailなどから、ログで個人が特定される可能性もあるので。
$ git config user.name "hanako" $ git config user.email "hanako@mail"
設定の確認は、以下のコマンドで。
$ git config --list