会社用と個人用のようにアカウントを使い分けて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の右上のアイコンにあるSetting → SSH and GPG keys → New 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