こんにちは、フルスタックエンジニアのryuです。
今回の記事では、gitで”Permission denied (publickey).”というエラーが発生した際の対処方法を解説します。鍵を再作成をしてもなぜかこのエラーが対処できませんでした。その原因は、SSHの秘密鍵がロードされていないことが原因でした。
目次
【Git】”Permission denied”のエラーの対処方法解説
gitでpushするとき、”Permission denied”のエラーが出てきてできない・・・
今回のエラーでは、Gitで下記のエラーが発生した場合の対処方法を解説します。
git@github.com: Permission denied (publickey).
このエラーの対処方法については、様々な記事がありました。鍵の生成やconfigファイルの作成など、正常に設定できているのに、なぜかエラーが出続けていました。
その原因は、SSHの秘密鍵がロードされていないことでした。
その対処方法を解説します。
Permission deniedは秘密鍵がロードされていなかったから
まず、エラーの確認です。git bashを開いてください。
“git push”や”ssh -T git@github.com”でgitにアクセスしようとすると、下記の画面のようにエラーが発生しました。
これの原因は、秘密鍵がロードされていないことでした。下記のコマンドで確認できます。
ssh-add -l -E sha256
→The agent has no identities.
“The agent has no identities.”というエラーが表示されました。これは、秘密鍵が無いことを表しています。
下記のコマンドで秘密鍵を追加しましょう。
ssh-add ~/.ssh/id_ed25519
ssh-add [秘密鍵のファイル(.pubではない方)]
これで、Githubへの接続ができるようになりました。
参考:その他の原因の場合
これ以外でもエラーが出続ける場合は、下記の公式ドキュメントを参考にしてください。LinuxやMaxなどコマンドが若干変わる場合があります。
Error: Permission denied (publickey) – GitHub Docs
また、鍵を使った接続の仕組みについては、こちらの記事で詳しく解説しております。
【Git】”Permission denied”のエラーまとめ
今回の記事では、Gitのエラーについて解説しました。
このエラーは、多くの記事で対処方法を解説していましたが、この解決策は書かれておらず、解決まで時間がかかってしまいました・・・
Gitについてさらに学びたいという方は、こちらの講座や参考書がオススメです。