複数のGithubアカウントを使い分けてcloneする方法

会社用と個人用のようにアカウントを使い分けてGitHubのssh接続したい時の方法を備忘録として残しておきます。

SSH鍵を作成

使い分けたいアカウントの数だけSSHKeyを作成します。
以下のコマンドを叩くとパスフレーズを聞かれますが、
特に設定することがなければEnterを押して進めていくとデフォルトの名前(id_rsa、id_rsa.pub)とパスフレーズを必要としないキーペアが作成されます。
今回のようにSSHKeyを複数管理しなければならない場合、何の為の鍵かわかりやすくする為に
名前をつけておいた方が無難です。(github_main_id_rsa,github_sub_id_rsaなど)

cd ~/.ssh
ssh-keygen -t rsa -b 4096

Githubに公開鍵を登録

以下のコマンドを叩き公開鍵の中身を表示して全文コピーします。

cat ~/.ssh/id_rsa.pub

Githubの右上のアイコンにあるSettingSSH and GPG keysNew SSH keyと進み
先ほどコピーした公開鍵を登録します。
Titleはわかりやすい名前であればなんでも大丈夫です。

configファイルを作成する

configファイルを作成することでGitHubへSSH接続する際に参照する秘密鍵の名前を指定できます。
IdentityFileの部分には自分で作成した秘密鍵の名前を設定してください。

touch ~/.ssh/config
 # メインアカウント
Host github.com
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/github_main_id_rsa  # メインアカウントの鍵
  TCPKeepAlive yes
  IdentitiesOnly yes

# サブアカウント
Host github.com.sub 
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/github_sub_id_rsa  # サブアカウントの鍵
  TCPKeepAlive yes
  IdentitiesOnly yes

接続を確認

#メインアカウントの接続を確認
ssh -T git@github.com
#メインアカウントの接続を確認する
ssh -T github.com.sub

アカウントを使い分けてcloneを実行

一点注意が必要なのがgit clone git@github.com:[アカウント名]/[リポジトリ名].gitのようなGitHubの通常のclone方法ではアカウントを使い分けてcloneはできません。
~/.ssh/configで指定したHostを指定する必要があります。

#メインアカウントでclone
$ git clone git@github.com:[アカウント名]/[リポジトリ名].git

#サブアカウントでclone
$ git clone git@github.com.sub:[アカウント名]/[リポジトリ名].git

コメントを残す

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。