【GitHub】複数アカウントを使い分ける方法

やりたいこと

GitHubの仕事用とプライベート用のアカウントを使い分けしたい。

解決方法

新規アカウントの鍵作成・登録

今回は既にプライベート用のGitHubアカウントがあり、新規で仕事用のアカウントを追加したと想定します。

まずは、新規アカウント用の秘密鍵・公開鍵を作成します。
今回~/.ssh内にjobディレクトリを作成して、その配下に鍵を配置します。

$ mkdir ~/.ssh/job

ssh-keygenコマンドで鍵を作成します。-Cのコメント部分には、GitHubに登録しているメールアドレスを指定します。

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/job/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

これで秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成されました。

GitHubに公開鍵を登録

GitHubのSettings > SSH and GPG keys > New SSH keyの順に選択すると、鍵の登録画面が表示されます。

Keyには、公開鍵を入力します。 
cat ~/.ssh/job/id_rsa.pub | pbcopyとコマンドを打つと、公開鍵の内容がコピーできるので、そのまま貼り付けます。

~/.ssh/configを編集

~/.ssh/configに複数のアカウント情報を記述します。vimコマンドでconfigファイルの編集を行います。

$ vim ~/.ssh/config

INSERTモードにして、以下のように記述します。Host名は任意のものでOKです。

Host github.com-job
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/job/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes
Host github.com-private
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes

記述が終わったら、INSERTモードを解除して、

:wq

で内容を保存し、vim画面を終了させます。

接続確認

最後に接続の確認を行います。
sshの後ろに、先ほどconfigに設定したHost名を入力します。

$ ssh github.com-job

以下が返ってきたらOKです。

Hi 【GitHubのアカウント名】! You've successfully authenticated, but GitHub does not provide shell access.
タイトルとURLをコピーしました