【ITニュース解説】Managing Multiple GitHub Accounts (Work + Personal) on the Same Machine

2025年09月05日に「Dev.to」が公開したITニュース「Managing Multiple GitHub Accounts (Work + Personal) on the Same Machine」について初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

ITニュース概要

同一PCで複数GitHubアカウント(仕事/個人)を管理する方法を紹介。SSHキーをアカウント毎に作成し、~/.ssh/configで紐付け。git remote set-urlでリモートURLを更新。各リポジトリでgit config user.name/emailを設定。~/.gitconfigでディレクトリ毎にアカウントを自動切替可能にし、コミット時のアカウント間違いを防止。

ITニュース解説

この記事では、1台のPCで複数のGitHubアカウント(仕事用と個人用など)を安全かつ効率的に管理する方法を解説する。システムエンジニアを目指す初心者にとって、GitHubはコードを共有し、共同作業を行う上で不可欠なプラットフォームだ。しかし、複数のアカウントを扱う際には、認証エラーやコミット履歴の混同といった問題が発生しやすい。この記事で紹介する解決策は、SSHキーとGitの設定を適切に管理することで、これらの問題を回避し、スムーズな開発ワークフローを実現するものだ。

まず、問題点を明確にする。多くの開発者は、仕事用と個人用のGitHubアカウントを使い分けている。しかし、Gitの設定がグローバルに設定されている場合、誤ったアカウントでコミットやプッシュが行われてしまうことがある。たとえば、仕事用PCで個人リポジトリにコードをプッシュしようとすると、権限エラーが発生し、作業が中断されてしまう。また、毎回ログイン・ログアウトを繰り返すのは非常に煩雑だ。

この問題を解決するために、以下の手順でSSHキーとGitの設定を分離する。

  1. 個人用SSHキーの生成: 既存のSSHキー(通常は~/.ssh/id_rsa)とは別に、個人用アカウント専用の新しいSSHキーを作成する。ssh-keygen -t ed25519 -C "your-personal-email@example.com" -f ~/.ssh/id_ed25519_personalというコマンドを実行することで、~/.ssh/id_ed25519_personalという名前の新しいキーペアが生成される。-t ed25519はより安全な暗号化方式を指定し、-Cはキーに紐付けるメールアドレスを指定、-fはキーのファイル名を指定する。

  2. SSHエージェントへのキーの追加: 生成したSSHキーをSSHエージェントに追加することで、毎回パスフレーズを入力する手間を省くことができる。eval "$(ssh-agent -s)"でSSHエージェントを起動し、ssh-add ~/.ssh/id_rsassh-add ~/.ssh/id_ed25519_personalでそれぞれのキーをエージェントに追加する。

  3. GitHubへの公開鍵の登録: 個人用アカウントの公開鍵(~/.ssh/id_ed25519_personal.pub)をGitHubに登録する。GitHubのWebサイトにログインし、Settings > SSH and GPG keys > New SSH key の順にアクセスし、公開鍵の内容をコピー&ペーストする。

  4. SSH設定の構成: ~/.ssh/configファイルを編集(または新規作成)し、アカウントごとに異なるSSHキーを使用するように設定する。このファイルで、GitHubのホスト名にエイリアスを付け、それぞれのアカウントに対応するIdentityFile(秘密鍵)を指定する。例えば、仕事用にはgithub.com-company、個人用にはgithub.com-personalのようなエイリアスを設定し、対応する秘密鍵のパスを指定する。

  5. GitリモートURLの更新: 各リポジトリの.git/configファイルにあるリモートURLを、設定したエイリアスを使用するように更新する。git remote set-url origin git@github.com-personal:your-username/your-repo.gitのように、github.comgithub.com-personalgithub.com-companyに置き換える。git remote -vで現在のリモートURLを確認できる。

  6. 接続のテスト: ssh -T git@github.com-personalssh -T git@github.com-companyというコマンドを実行し、それぞれのアカウントで正しく接続できることを確認する。成功すれば、GitHubからアカウント名とともに挨拶が表示される。

  7. リポジトリごとのGitコミットIDの設定: 各リポジトリ内で、git config user.name "Your Name"git config user.email "your-personal-email@example.com"を使用して、コミットに使用する名前とメールアドレスを設定する。これにより、コミット履歴が正しいアカウントに紐付けられる。

さらに、.gitconfigファイルとincludeIfディレクティブを使用することで、リポジトリの場所に基づいて自動的にGitのIDを切り替えることができる。例えば、~/work/ディレクトリにあるリポジトリに対しては仕事用のアカウント、それ以外の場所にあるリポジトリに対しては個人用のアカウントを使用するように設定できる。

これらの設定を行うことで、複数のGitHubアカウントを1台のPCで管理する際の問題を解決し、スムーズな開発ワークフローを実現することができる。エラーに悩まされることなく、仕事と個人のプロジェクトに集中できるようになるだろう。

【ITニュース解説】Managing Multiple GitHub Accounts (Work + Personal) on the Same Machine | いっしー@Webエンジニア