GitHubのアカウントが複数ある場合、アカウントを切り替えてSSH接続したい場合があると思います。
この記事ではSSH接続により、1つの端末内で複数のGitHubアカウントを使用する方法をご紹介します。
この記事の内容
事前準備
前提としてGitHubアカウントを既に複数持っており、それぞれにリポジトリが作成されていることを想定しています。
アカウントやリポジトリの作成から行う場合は次の記事も参考にしてください。
メインアカウントは既に「id_rsa」の名称でSSH Keyが登録されているものとします。サブアカウント用のSSH Keyを作成する手順から解説します。
- メインアカウント…SSH Keyを作成しGitHubへ登録済み
- SSH Keyの作成から登録までの方法の詳細は『GitHub – SSH接続の設定方法』を参照してください。
- サブアカウント…SSH Keyは未作成・未登録
サブアカウント用のSSH Keyの作成・登録手順
次の設定を行うことで複数のSSH Keyでの接続ができるようになります。
- サブアカウント用のSSH keyを作成するためにGitBash上で以下のコマンドを実行します。
ssh-keygen -t rsa -C -f
- ファイル名はメインアカウントとは異なる名称を指定します。対話形式では誤ってエンターキーを押してデフォルトの名称にしてしまう可能性があるので、ファイル名はオプションで指定しておいた方が安全です。
- GitHubにサブアカウントでログインし、SSH key登録の画面を開きます。作成したサブアカウント用のSSH keyの内容を登録します。
- SSH keyの登録手順のより詳しい解説は、『GitHubにSSH Keyを登録』を参照してください。
- コマンドライン上で「~/.ssh/config」を以下のように記述し保存します。当該ファイルが存在しない場合は作成します。
#メインアカウント用
Host github.com
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
#サブアカウント用
Host github.com.sub
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa_sub
TCPKeepAlive yes
IdentitiesOnly yes- サブアカウントのHostは、「github.com」以外でわかりやすい名称をつけます。
- メインアカウント・サブアカウントそれぞれのIdentitiyFileには、作成したSSH keyのパスを指定します。
- それぞれのSSH keyでGitHubに接続できることを確認します。
- メインアカウント
$ ssh -T git@
【実行結果】
- サブアカウント
$ ssh -T git@
【実行結果】
- メインアカウント
以上でメイン・サブアカウントそれぞれのSSH接続が可能になりました。
SSH接続で複数のアカウントを切り替える方法
メインアカウントでgit cloneする
メインアカウントでのクローンは、通常のクローンと同じ手順でできます。
- SSH接続用のURLをコピーします。
- SSH用URLの参照方法がわからない場合は、『GitHub – SSH接続でCloneできるか確認』を参考にしてください。
- git cloneの後にSSH用のURLを貼り付けて実行します。
$ git clone git@github.com:user/repository.git
サブアカウントでgit cloneする
サブアカウントでリポジトリをクローンする場合は、URLに注意する必要があります。
- SSH接続用のURLをコピーします。
- git cloneの後に貼り付けます(まだ実行はしません)。
$ git clone git@github.com:user/repository.git
- URL中の「@github.com」をssh.configに設定したサブアカウントのホスト「@github.com.sub」に書き換えて実行します。
$ git clone git@github.com.sub:user/repository.git
【実行結果】
これで当該リポジトリについて、サブアカウントのSSH情報の使用を認識させることができます。
以上、複数のGitHubアカウントをSSH接続で切り替える手順でした。
この記事のテーマに戻る
GitHubの使い方
コメント