1. ホーム
  2. git

[解決済み] Githubのリモートパーミッションが拒否されました

2023-05-18 13:17:36

質問

githubに自分のレポをアップロードしようとしています。

git push -u origin master

を実行すると、次のようなエラーが発生します。

リモートで samrao2/manager-4.git へのパーミッションが samrao1 に拒否されました。

fatal: ' にアクセスできません。 https://github.com/samrao2/manager-4.git/ ': 要求されたURLはエラーを返しました。403

問題は、"samrao1" の前に別の Git アカウントにログインしていて、今は "samrao2" にプッシュしようとしていることだと思います。

誰かこれをリセットして、"samrao2" にうまくプッシュできるようにするのを手伝ってくれませんか。初めてそれを実行しようとするとき、パスワードの入力を求められると思います。

どのように解決するのですか?

https にアクセスできないとは: これは SSH とは関係ありません (また、SSH に切り替えることは可能ですが、元の問題を説明するものではありません)。

これはクレデンシャル・キャッシングと関係があります。つまり、Git はデフォルトでクレデンシャル(GitHub のアカウントと パスワード PAT 個人用アクセストークン ) を使って、新しいアカウントにプッシュしようとしているときに、旧アカウントの


注意点として、ほとんどの Git リポジトリホスティングサービスでは トークン をパスワードとして使用します。これは、実際のユーザーアカウントのパスワードではありません。

例えば GitHubは2021年8月以降、パスワードを受け付けなくなりました。 .


があるかどうか確認してください。 クレデンシャルヘルパー で、認証に使われた(古いアカウントの)クレデンシャル(ユーザ名/パスワード)をキャッシュしていたはずです。

git config credential.helper 

Macでは コメント によって アルピットJ キーチェーンにアクセスし、github.com の関連ファイルを検索し、認証情報を編集してください。

"を参照してください。 OSX キーチェーンから認証情報を更新する " を参照してください。

Windows (そして 2021 年には、おそらく Linux や Mac も) では、これは Windows クレデンシャル マネージャー GCMC: Git クレデンシャル・マネージャー .

Windows Credential Store を開き、最初のユーザーがそこに登録されているかどうかを確認します。そのエントリを削除すると、2 番目のユーザーで認証が可能になります。

(以下は BitBucket の例です)


コマンドラインでは ( git credential を参照)、マネージャコアクレデンシャルヘルパーの場合。

  • 古いパスワードまたはトークンを取得します。

    printf "protocol=https\nhost=github.com\nusername=<me>" | \
      git credential-manager-core get
    
    # output:
    protocol=https
    host=github.com
    username=<me>
    password=<old_password_or_token>
    
    
  • 旧パスワードを削除します。

    printf "protocol=https\nhost=github.com\nusername=<me>" | \
      git credential-manager-core erase
    
    

(置き換え <me> を GitHub のユーザーアカウント名に置き換えてください)