環境構築
Permission denied (publickey)
SSH鍵が設定されていない
こんな症状
git pushすると「Permission denied (publickey)」と表示される。SSH設定で起きやすいよ。
まず試す
手早く済ませるならリモートURLをHTTPSに変える。本格運用ならSSH鍵を生成してGitHubに登録する。
env
# 方法1: HTTPSに変える(手早い)
git remote set-url origin https://github.com/ユーザー名/リポジトリ名.git
# 方法2: SSH鍵を作って GitHub に登録
ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pubこれで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓SSH鍵を作っていない
→ ssh-keygen で生成し、公開鍵をGitHubのSettings→SSH keysに登録する。 - ✓とりあえず push したい
→ git remote set-url origin で HTTPS URL に変える。 - ✓設定したのに繋がらない
→ ssh -T [email protected] で接続テスト(successfully authenticated でOK)。
なぜ起きる?
GitHubにSSH鍵が登録されていない、またはHTTPS URLを使うべきところでSSH URLを使っているよ。GitHubはpush時に「あなたは誰?」と認証するんだけど、SSH鍵が設定されていないと認証に失敗するんだ。
✕ エラーが起きるコード
$ git push
Permission denied (publickey)
# SSH鍵が未設定✓ 直したコード
$ ssh-keygen -t ed25519
$ cat ~/.ssh/id_ed25519.pub
# GitHubに公開鍵を登録✅ 直ったか確認
git push が認証エラーなく通ればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- Permission denied — 権限が不足している
- PermissionError: [Errno 13] Permission denied (Python) — ファイルへのアクセス権限がない
- .gitignoreが効かない・無視されない — 追跡済みファイルには効かない/パターンの書き方ミス
- refusing to merge unrelated histories — 関連のない履歴をマージしようとしている
- Your branch is behind — リモートに新しいコミットがある
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- VS Codeのインストール方法 — インストールと初期設定を図解で解説
- プログラミング初心者が最初にやるべきこと5選 — 目的を決めて環境構築から