【Git】「Permission denied (publickey)」エラーの原因と解決方法

【Git】「Permission denied (publickey)」エラーの原因と解決方法 Git

GitHub を使っていると、リモートリポジトリへの接続時に以下のエラーが出ることがあります。

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

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

このエラーは、SSH 鍵(公開鍵)が正しく登録されていない場合に発生します。ここでは原因と解決方法を解説します。

1. SSH鍵があるか確認する

まず、ローカル環境に SSH 鍵が存在するか確認します。

ls -al ~/.ssh

id_rsa.pubid_ed25519.pub があれば公開鍵が既にあります。もし無ければ次のコマンドで新しく作成します。

ssh-keygen -t ed25519 -C "your_email@example.com"

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

作成した公開鍵を表示してコピーします。

cat ~/.ssh/id_ed25519.pub

コピーした内容を GitHub に登録します。

  1. GitHub 右上のアイコン → Settings
  2. 左メニューの SSH and GPG keys
  3. New SSH key をクリックし、公開鍵を貼り付けて保存

3. SSH接続を確認する

正しく登録できたかを確認します。

ssh -T git@github.com

成功すると以下のようなメッセージが表示されます。

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

4. リモートリポジトリのURLを確認する

リポジトリのリモートURLが SSH 形式になっているか確認します。

git remote -v

もし https://github.com/... になっていた場合は、次のコマンドで変更します。

git remote set-url origin git@github.com:username/repository.git

5. SSHエージェントに鍵を登録する

必要に応じて SSH エージェントに鍵を登録します。

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

まとめ

「Permission denied (publickey)」エラーは、ほとんどの場合 SSH 公開鍵が GitHub に登録されていないことが原因です。手順に沿って鍵を確認・登録し、接続テストを行うことで解決できます。