2024.1.28
GitHubアカウントごとに.gitconfigを設置しssh接続時にIdentityFileを使い分ける方法
概要
複数のGitHubアカウントにおいて、それぞれGitHubにssh接続が必要な場合の設定メモです。
手順
今回は xxxx と yyyy という2つのアカウントを使い分けたいとします。
.gitconfig
.gitconfig
を以下のように設置します。~/.gitconfig
text_____.gitconfig_____[user]
name = xxxx
email = xxxx@gmail.com
[includeIf "gitdir:~/Git/yyyy/"]
path = ~/Git/yyyy/.gitconfig
※includeIf でのディレクトリの指定は最後の /
まで必要です~/Git/yyyy/.gitconfig
text_____.gitconfig_____[user]
name = yyyy
email = yyyy@gmail.com
ssh関連ファイル
今回は ~/.ssh
ディレクトリに以下のようなファイルを用意しました。
text_____ls_____-rw-------@ 1 user-name staff 2635 Sep 30 23:11 xxxx_id_rsa
-rw-r--r--@ 1 user-name staff 593 Sep 30 23:11 xxxx_id_rsa.pub
-rw-------@ 1 user-name staff 2635 Oct 2 23:14 yyyy_id_rsa
-rw-r--r--@ 1 user-name staff 593 Oct 2 23:14 yyyy_id_rsa.pub
~/.ssh/config
text_____config_____#Include ~/.ssh/conf.d/xxxx/config
Include ~/.ssh/conf.d/yyyy/config
# ~~~省略~~~
~/.ssh/conf.d/xxxx/config
text_____config_____Host github github.com
HostName github.com
User git
IdentityFile ~/.ssh/xxxx_id_rsa
~/.ssh/conf.d/yyyy/config
text_____config_____Host github github.com
HostName github.com
User git
IdentityFile ~/.ssh/yyyy_id_rsa
aliasの登録
~/.zshrc
text_____.zshrc_____# ~~~省略~~~
alias git-use-xxxx="sed -i '' '1s/^#Include /Include /' ~/.ssh/config && sed -i '' '2s/^Include /#Include /' ~/.ssh/config"
alias git-use-yyyy="sed -i '' '1s/^Include /#Include /' ~/.ssh/config && sed -i '' '2s/^#Include /Include /' ~/.ssh/config"
# ~~~省略~~~
上記のようにするとターミナルで git-use-xxxx
と打つと xxxx のGitHubアカウント、 git-use-yyyy
と打つと yyyy のGitHubアカウントでGitHubにssh接続できます。