Copy & Paste Engineer

【Github】SSHでの複数リポジトリ対応方法

【Github】SSHでの複数リポジトリ対応方法

GitHubなどのサービスで、用途やアカウントごとに異なるSSHキーを使い分ける方法をご紹介します。 既存のSSHキーと別に新たなキーを作成し、~/.ssh/config を用いて複数リポジトリやアカウントに対応する設定手順を詳しく解説します。


新しいSSHキーの生成

既存のキーと混同しないよう、用途ごとに別のSSHキーを作成します。たとえば、仕事用アカウント専用のキーを生成する場合は、以下のコマンドを実行します。

ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/github-work

SSHエージェントへのキー追加

生成した新しいSSHキーを、SSHエージェントに登録しておくと、以降の接続時に毎回パスフレーズを入力する手間が省けます。

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/github-work

GitHubアカウントへの公開鍵登録

生成した公開鍵(~/.ssh/github-work.pub)を対象のGitHubアカウントに登録します。 GitHubの「SSH and GPG keys」ページにアクセスし、「New SSH key」からキーを追加してください。


SSH設定ファイルの編集

複数のSSHキーを使い分けるため、~/.ssh/config ファイルにホストごとの設定を記述します。以下はサンプル設定です。

# 個人用GitHubアカウント(既存のキー)
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519

# 仕事用GitHubアカウント(新しく生成したキー)
Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-work

この設定により、仕事用リポジトリをクローンする際は、以下のようにエイリアスを利用します。

git clone git@github-work:work-username/repository.git

SSHクライアントは「github-work」の設定を参照し、指定された秘密鍵(~/.ssh/github-work)を使用して接続を行います。


まとめ

これらの手順により、同一マシン上で複数のGitHubアカウントや用途に合わせたSSH接続をスムーズに運用できます。


参考URL