今回は 1 つのパソコンで、Git の複数アカウントに接続する方法についての記事です。
この記事は「すでに GitHub アカウントを PC に登録している状態で、新たに 2 つ目の GitHub アカウントを追加したい」という場合の解説となります。
手順
手順としては以下のようになります。
- 秘密鍵・公開鍵の生成
- config ファイルへ設定の記載
- GitHub との接続を確認
1.秘密鍵・公開鍵の生成
まずは新しく登録するアカウント用の秘密鍵・公開鍵の生成を行います。
以下コマンドで.ssh ディレクトリに移動したのちに
cd ~/.ssh
秘密鍵・公開鍵を以下のコマンドで生成します。
ssh-keygen -t ed25519
ssh-keygen -t ed25519
を実行したのちに 3 つの質問に答えて秘密鍵・公開鍵の作成をするのですが、一つ目の質問で聞かれる鍵の名前は絶対に既存の鍵名と被らないようにしてください。
sub_account_key
等適当な名前をつけましょう。
パスフレーズはこだわりがなければ特に入力する必要はありません。
$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/username/.ssh/id_ed25519): sub_account_key
Enter passphrase (empty for no passphrase): #パスワード
Enter same passphrase again: #パスワードの確認
秘密鍵・公開鍵が作成されているか.ssh
の中を確認しましょう。
ls
config id_ed25519 id_ed25519.pub sub_account_key sub_account_key.pub
最後に GitHub に今作成した公開鍵(sub_account_key.pub)を登録しておきましょう。
2.config ファイルへ設定の記載
.ssh ディレクトリに存在する config ファイルに設定を記述していきます。
無い場合は以下のコマンドで作成を行なってください。
touch ~/.ssh/config
config ファイルを VScode や Vim 等で開き、設定を書いていきます。
Host github.com.sub # 追加したアカウント用(任意)
HostName github.com #GitHubなら変更しなくてよい
User git
Port 22
IdentityFile ~/.ssh/sub_account_key # 追加したアカウント用の鍵
TCPKeepAlive yes
IdentitiesOnly yes
記述し終わったら VScode であればcommand + s
、Vim であれば:wq
で保存を行なってください。
3.GitHub との接続を確認
それぞれのアカウントと通信ができているか確認をしましょう。
#既存カウントの接続を確認する
% ssh -T github.com
Hi [既存カウントのユーザー名]! You've successfully authenticated, but GitHub does not provide shell access.
#追加したカウントの接続を確認する
% ssh -T github.com.sub
Hi [追加したアカウントのユーザー名]! You've successfully authenticated, but GitHub does not provide shell access.
上記のような感じで接続がうまくいっていれば大丈夫です。
それぞれのアカウントでクローンする方法
それぞれのアカウントでクローンする時は以下のようになります。
git clone git@github.com:<アカウント名>/<リポジトリ名>.git #既存アカウント
git clone git@github.com.sub:<アカウント名>/<リポジトリ名>.git #追加したアカウント
分かりやすくすると
git clone git@<configで設定したHost>:<アカウント名>/<リポジトリ名>.git
となります。
以上が Git の複数アカウントに接続する方法になります。