できない.dev

Git push できない(SSH認証で蹴られる)

SSH 鍵が GitHub に登録されていない、または ssh-agent に追加されていないと push が拒否される。
最も多い原因と対処を順に確認する。

#auth#ssh#push#github

公開:

要約

git pushPermission denied (publickey). で失敗するケースは、 SSH 認証の準備が整っていない場合に発生する。
最初に確認するのは 「鍵が GitHub に登録済みか」「ssh-agent に鍵が追加されているか」「リモート URL が SSH か」の3点。

よくある原因

  1. 公開鍵未登録: GitHub に公開鍵がアップロードされていない
  2. ssh-agent に鍵が無い: 端末再起動後に ssh-add し忘れている
  3. HTTPS リモート + 期限切れ PAT: 古い HTTPS URL に対し PAT が無効
  4. ~/.ssh/config 設定ミス: 別 Host 用の設定が混在し github.com に到達できない

解決策

1. 鍵の作成と登録

ssh-keygen -t ed25519 -C "you@example.com"
cat ~/.ssh/id_ed25519.pub  # この内容を GitHub Settings → SSH and GPG keys に登録

2. ssh-agent への追加

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

3. リモート URL を SSH に切り替え

git remote set-url origin git@github.com:USER/REPO.git

4. 疎通確認

ssh -T git@github.com
# Hi USER! You've successfully authenticated...

この記事は役立ちましたか?