GitHub。使ってますか?
バージョン管理に、昔はSVNもちょろっと使ってましたが、いつの間にやらGit、しかもリモートはGitHubしか使わなくなってました。
そんな便利な、GitHubですが、複数アカウントを利用するのは面倒くさいのです。
お仕事用と誰にも知られたくない個人用。
特にリモートワークが増えている今、自宅のPCで両方にアクセスが必要になってくると、うまくアカウントを切り分ける必要がありますよね。
今回、新しいGitHubアカウントを作ったタイミングで久しぶりにこの周りを触ったので、自分のメモ代わりに簡単にまとめておきます。
証明書を作成します
cd ~/.ssh
証明書の格納ディレクトリに移動します。
ssh-keygen -t rsa -C "monmon@monmon.jp" -f github_monmon
メールアドレスにGitHubユーザーのメールアドレス、証明書のファイル名は適当に(今回はgithub_monmon)決めます。
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
パスフレーズが求められますが、エンターで2回でスルーで良いかと。
github_monmon
github_monmon.pub
秘密鍵、公開鍵が作られます。
ssh/configの作成
vi ~/.ssh/config
configがなけれはこれで新設し、次のようにHostを切り分けます。
Host github.com
HostName github.com
IdentityFile ~/.ssh/github
User git
TCPKeepAlive yes
IdentitiesOnly yes
Host github_monmon
HostName github.com
IdentityFile ~/.ssh/github_monmon
User git
TCPKeepAlive yes
IdentitiesOnly yes
これでホストの指定が [ github.com ]の場合は従来通り秘密鍵 [ github ] を利用し、ホストの指定が[ github_monmon ]だった場合は秘密鍵 [ github_monmon ] を利用して、[ HostName github.com ]にアクセスするようになります。
GitHubに公開鍵を登録
Settings > SSH and GPG keys > New SSH key から行います。
Title に適当な名前。
Keyに公開鍵をセットします。今回の例の場合は [ github_monmon.pub ]の中身です。
cat ~/.ssh/github_monmon.pub
ですね。
GitHubからcloneする
通常のリポジトリの場合、
git clone git@github.com:monmonjp/speechSynthesis.git
こんな感じでクローンしますが、別アカウントを利用する場合は、
git clone git@github_monmon:monmonjp/speechSynthesis.git
このように、ホスト名を先程設定したものに変更して利用します。
最後に、ローカル環境で利用する際の注意点です。
ローカルでコミットするアカウントを変更する
ローカルで作業し、コミットする場合に注意しないと行けないのが、デフォルトのユーザーアカウントでコミットした事になってしまいます。アカウントを折角切り分けているのに本末転倒ですよね(笑)
明示的にユーザーを変更しておきましょう。
git config user.email "monmon@monmon.jp"
GitHubユーザーのメールアドレスを指定してあげます。
git config --global user.email "monmon@monmon.jp"
ローカル環境全体のデフォルトユーザーを変更したい場合は、グローバルオプション付きで。
$ git config user.email
monmon@monmon.jp
これで変更されました。安心して使えますね(笑)