🐈‍⬛

特定のプロジェクトで別のGitHubアカウントを使用する方法

に公開

GitHubで複数のアカウントを持っていると、「会社用アカウント」と「個人用アカウント」を使い分けたいことがありますよね。今回自分がアカウントに分けた際に権限で引っかかってしまったので、その解決方法について備忘録として残すことにしました

このようなエラーに遭遇しました....

Cloning into 'cool-project'...
ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

これは「あなたが今使っているGitHubアカウントでは、このリポジトリを見る権限がないよ」というエラーです。会社のプロジェクトに個人アカウントでアクセスしようとしたり、その逆をしたりすると起こります。

解決方法:SSHで複数アカウントを使い分ける

ステップ1:別のSSH鍵を作る

まず、アカウントごとに別々のSSH鍵を作ります。ターミナルを開いて:

# 会社用のSSH鍵を作る
ssh-keygen -t ed25519 -C "work@example.com"

ファイル名を聞かれたら、わかりやすい名前をつけましょう(例:id_ed25519_work)。

# 個人用のSSH鍵を作る(すでにある場合は不要)
ssh-keygen -t ed25519 -C "personal@example.com"

こちらもわかりやすい名前をつけましょう(例:id_ed25519_personal)。

ステップ2:SSHの設定ファイルを編集する

SSHの設定ファイルを作成・編集します:

nano ~/.ssh/config

以下のように記述します:

# 個人用GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal

# 会社用GitHub
Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work

ステップ3:SSH鍵をGitHubアカウントに登録する

  1. 作成した公開鍵の内容を表示します:

    cat ~/.ssh/id_ed25519_work.pub
    
  2. 表示された内容をコピーします

  3. 会社用GitHubアカウントにログインし、「Settings」→「SSH and GPG keys」→「New SSH key」で鍵を登録します

ステップ4:接続テスト

設定が正しいか確認しましょう:

# 個人アカウントの確認
ssh -T git@github.com

# 会社アカウントの確認
ssh -T git@github-work

どちらも以下のようなメッセージが表示されれば成功です:

Hi ユーザー名! You've successfully authenticated, but GitHub does not provide shell access.

ステップ5:会社のプロジェクトをクローン

会社のプロジェクトをクローンするときは、通常のURLを少し変更します:

通常のURL:

git@github.com:会社名/プロジェクト名.git

変更後のURL:

git@github-work:会社名/プロジェクト名.git

つまり、github.comの部分をgithub-workに変更するだけです。

例えば:

git clone git@github-work:cool-company/secret-project.git

ステップ6:既存のプロジェクトの設定を変更する

すでにクローンしたプロジェクトを別アカウントで使いたい場合は:

cd プロジェクトのフォルダ
git remote set-url origin git@github-work:cool-company/secret-project.git

これで、1台のパソコンから複数のGitHubアカウントを使い分けられるようになりました!個人プロジェクトは個人アカウントで、会社のプロジェクトは会社アカウントで、という具合に使い分けられます!

株式会社Xronotech

Discussion