はじめに
GitHubでリポジトリ名を変更した後、ローカルで作業して git push しようとすると、次のようなエラーで詰まることがあります。
Missing or invalid credentials. Error: Bad status code: 401 at ClientRequest.<anonymous> (/Applications/Cursor.app/Contents/Resources/app/extensions/git/dist/askpass-main.js:1:3335) ... fatal: Authentication failed for 'https://github.com/user/new_project.git/'
これは、リポジトリ名の変更によりURLが変わり、Cursor(VS Code)が保持している古い認証情報や独自の認証ヘルパーが混乱していることが原因です。
今回は、「既存の他案件の設定は一切いじらない」かつ「流出リスクを抑えた期間限定のPAT(Personal Access Token)」を使って、この問題をスマートに解決する方法を解説します。
ステップ1:GitHubで「使い捨て」のPATを発行する
SSH鍵は流出が怖いが、セキュアに管理したい。そんな時は、有効期限を設定したPATが最適です。
- GitHubの Settings > Developer settings > Personal access tokens > Tokens (classic) へ進みます。
- Generate new token (classic) を選択。
- Note: 「Project_X_Update」など、今回限定であることがわかる名前を付けます。
- Expiration (有効期限):
7 daysや30 daysなど、作業に必要な最低限の期間に設定します。(これが最強の流出対策です) - Select scopes:
repo(リポジトリのフル制御)だけにチェックを入れます。 - Generate token をクリックし、表示されたトークン(
ghp_...)をメモします。
ステップ2:このリポジトリ専用のURLにトークンを埋め込む
グローバルなGit設定やMacのキーチェーンを書き換えると、他の案件で「認証が通らなくなった」というトラブルを招きかねません。
そこで、該当プロジェクトの .git/config だけをピンポイントで書き換える手法をとります。
ターミナルで対象リポジトリに移動し、以下のコマンドを実行します。
# フォーマット: git remote set-url origin https://<TOKEN>@github.com/<USER>/<REPO>.git git remote set-url origin https://ghp_あなたのトークン@github.com/ユーザー名/新しいリポジトリ名.git
これにより、「このリポジトリとの通信時だけ、このトークンを使う」という個別設定が完了します。Cursor独自の認証プロキシが介入する余地をなくし、直接GitHubと通信させることができます。
ステップ3:接続確認
最後に、pushが通るか確認しましょう。
git push origin main
パスワードを求められることなく、スッとpushが完了するはずです。
まとめ:なぜこの方法が良いのか?
- 他案件への影響ゼロ: 特定のリポジトリのURLを書き換えるだけなので、他のプロジェクトのGit設定には1ミリも干渉しません。
- Cursorのバグを回避:
askpass-main.js(認証プロキシ)を通さないため、エディタ起因のエラーを根絶できます。 - 期間限定の安全性: トークンに期限を設けているため、万が一の流出時も被害を最小限に抑えられます。
同じエラーで頭を抱えている方は、ぜひ「URLに直接トークンを紐付ける」方法を試してみてください


