複数のGitHubアカウントでSSHを使う

個人用と仕事用の複数のGitHubアカウントで、別々の鍵とHostエイリアスを使ってSSHを設定する方法。デュアルアカウントの開発者に必須です。

Authentication

詳細な説明

複数GitHubアカウントのSSH管理

多くの開発者が個人プロジェクトと仕事用に別々のGitHubアカウントを持っています。GitHubはSSH鍵で識別するため、アカウントを切り替えるには異なる鍵とHostエイリアスが必要です。

設定例

Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal
  IdentitiesOnly yes

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work
  IdentitiesOnly yes

仕組み

両方のHostエントリがHostNameとしてgithub.comを指しますが、それぞれ異なるSSH鍵を使用します。IdentitiesOnly yesが重要です。これがないと、SSHがエージェント内のすべての鍵を提供し、間違ったアカウントで認証される可能性があります。

Gitリモートの更新

標準のリモートURL git@github.com:myorg/project.git の代わりに、Hostエイリアスを使用します:

git@github-work:myorg/project.git

リポジトリごとのGit設定

cd ~/work/project
git config user.email "work@company.com"
git config user.name "Your Work Name"

ユースケース

個人のオープンソースプロジェクトと会社のプライベートリポジトリの両方に別々のアカウントでGitHubに貢献する開発者。

試してみる — SSH Config Generator

フルツールを開く