0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SSHでGitHub複数アカウントを管理する|403エラーの原因と対処法

Last updated at Posted at 2025-08-06

既にGitHubを使っているPCで、別のGitHubアカウントを使おうとしたとき、以下のようなエラーに遭遇しました。

remote: Permission to アカウント名2/リポジトリ名.git denied to アカウント名1.
fatal: unable to access 'https://github.com/アカウント名2/リポジトリ名.git/': The requested URL returned error: 403

なんだかPermissionがdenied・・・
pushしようとしたときかな?もともとのアカウントの認証情報を使って、アクセスしようとして怒られたみたい。

対処として、SSH接続を使って複数のGitHubアカウントを切り替えて運用することにしたのでシェアします。

なぜ403エラーが出るのか?

GitHubは、HTTPSやSSHを使ってユーザーを認証します。
すでに使っているアカウントの認証情報(SSHキーやキャッシュされたHTTPS認証)が残っていると、新しいアカウントのリポジトリにアクセスできず403エラーになってしまうのだそう。

じゃぁどうするのか・・・

SSHキーで複数アカウントを管理しよう!

調べると認証情報のリセットだとか色々出てきますが、結局、
SSHキーとconfigファイルの設定でアカウント管理がスマートになったのでご紹介。

1.SSHキーを作成する

まずは、新しいアカウント用のSSHキーを作成します。

ssh-keygen -t ed25519 -C "yourname@example.com"
  • ssh-keygen ← SSHキーを作るコマンド
  • -t ed25519 ← 鍵の種類。暗号化方式。
  • -C "コメント(emailなど)" ← 識別用のコメント(GitHubではメールアドレスを使うのが一般的)

コマンドを実行すると、以下のように聞かれます。

Enter file in which to save the key (/home/user/.ssh/id_ed25519): ~/.ssh/id_ed25519_account2

ここで、ファイル名を指定できます。

今回の例だと以下の2つのファイルが作成されます:

~/.ssh/id_ed25519_account2(秘密鍵)
~/.ssh/id_ed25519_account2.pub(公開鍵)

複数アカウントを使う場合は、わかりやすい名前にすると管理しやすいです。

2. SSH設定ファイル(config)の編集

複数のSSHキーを使い分けるために、~/.ssh/config を編集しましょう。
configという名前でファイルを作って、以下のような内容を入力します。

# アカウント1用
Host github-account1
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_account1

# アカウント2用
Host github-account2
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_account2
  • Host github-アカウント名
  • HostName github.com ← このまま
  • User git ← このまま
  • IdentityFile ssh秘密鍵のある場所

ご自分のアカウントに合わせて書き換えてください。

3.GitHubに公開鍵を登録する

新しく作成したSSHキーの公開鍵を、GitHubの対象アカウントに登録します。

mac、Linux系の方は以下のコマンドで公開鍵を表示

cat ~/.ssh/id_ed25519_account2.pub

メモ帳で開いても見れます。

💡 ~/ はホームディレクトリを示す省略記号です。
そのため、SSHキーは通常、
~/.ssh/(例:/Users/ユーザー名/.ssh/)
に保存されています。


GitHubにアクセス!
「Settings」→「SSH and GPG keys」→「New SSH key」で登録

Add new SSH Keyのページでは、

  • Title: 自分が管理するための分かりやすい名前
  • Key type: Authentication Key
  • Key: 公開鍵をコピペしましょう。(ssh-ed25519 AAAつづく...)

4.ユーザーを設定する

リポジトリごとにユーザー名とメールアドレスを設定します。

git config user.name "設定したいユーザー名"
git config user.email "ユーザーのメールアドレス"

5.リポジトリの接続先を変更する

リポジトリごとに、使うSSHホストを指定します。

最初のお決まりの設定コマンドを打つ時に

git add .
git commit -m 'first commit'
git remote add origin git@github-account2:account2/リポジトリ名.git ←💡ここでSSHホストを指定
git branch -M main
git push origin main ←💡ここで403エラーが返ってこなければ成功!

のようにします。

※ account2 の部分はご自身のGitHubアカウント名に書き換えてください
※ github-account2 は ~/.ssh/config で定義したホスト名です。

💡すでに origin が設定されている場合は、このコマンドで接続先を変更できます。

git remote set-url origin git@github-account2:アカウント名2/リポジトリ名.git

⚠️ 403エラーが出る場合は、SSHキーの登録や ~/.ssh/config の設定を再確認してください。

接続確認

SSH接続が正しくできるか確認するには以下のコマンドを使います。

ssh -T git@github-アカウント名

成功すると、次のようなメッセージが表示されます:

Hi アカウント名2! You've successfully authenticated, but GitHub does not provide shell access.

まとめ

  • GitHubで複数アカウントを使うには、SSHキーと設定ファイルの使い分けが重要
  • 403エラーは「前のアカウントでアクセスしようとしている」ことが原因
  • SSH設定を整理すれば、快適に複数アカウントを運用できる

この記事が誰かの助けになれば幸いです👍

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?