簡體   English   中英

Github 遠程權限被拒絕

[英]Github remote permission denied

我正在嘗試通過以下所有步驟將我的回購上傳到 github 和 go:

git push -u origin master

那時它給了我以下錯誤:

遠程:對 samrao2/manager-4.git 的許可被 samrao1 拒絕。

致命:無法訪問“ https://github.com/samrao2/manager-4.git/ ”:請求的 URL 返回錯誤:403

我認為問題是我在“samrao1”之前登錄了另一個 Git 帳戶,現在我正試圖推送到“samrao2”。

有人能幫我把它重置到我可以成功推送到“samrao2”的地方嗎? 我假設我第一次嘗試這樣做時會提示我輸入密碼。

無法訪問 https 意味着:這與 SSH 無關(並且切換到 SSH,雖然可能,但並不能解釋原始問題)

這與憑據緩存有關,這意味着當您嘗試推送到新帳戶時,Git 將默認提供舊帳戶的憑據(GitHub 帳戶和密碼)。

看看您是否有一個憑證助手來緩存您用於驗證您的(舊帳戶)憑證(用戶名/密碼)。

git config credential.helper 

在 Mac 上,正如Arpit J評論的那樣,只需轉到/打開您的鑰匙串訪問-> 搜索 github.com 相關文件-> 並在那里編輯憑據。

https://help.github.com/assets/images/help/setup/keychain-access.png

請參閱“ 從 OSX 鑰匙串更新憑據

在 Windows(並且,在 2021 年,可能是 Linux 甚至 Mac)上,這將是 Windows 憑據管理器 GCMC:Git 憑證管理器核心
打開 Windows Credential Store,查看第一個用戶是否在那里注冊:刪除該條目,您將能夠向第二個用戶進行身份驗證。

(這里是 BitBucket 的一個例子)

https://kwilson.io/blog/wp-content/uploads/2015/01/4-store.png


在命令行中(請參閱git credential ),對於經理核心憑據幫助程序:

  • 獲取舊密碼:

     printf "protocol=https\\nhost=github.com\\nusername=<me>" | \\ git credential-manager-core get # output: protocol=https host=github.com username=<me> password=<oldpassword>
  • 刪除舊密碼:

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

(將<me>替換為您的 GitHub 用戶帳戶名)

如果您使用的是 MacOS,您可以

  1. 轉到鑰匙串訪問,
  2. 搜索“GitHub”,
  3. 然后當結果“github.com”彈出時,將帳戶或密碼更改為您的新帳戶,並保存。

那么你就准備好了!

我不確定問題是什么,但由於您提到不知道“安裝正確的密鑰”意味着什么,我假設您尚未設置您的計算機以通過 SSH 對您的 Github 存儲庫進行身份驗證。

本指南應向您展示如何執行此操作: 向您的 Github 帳戶添加新的 SSH 密鑰

另外,我建議對您的遠程 URL 使用“git://github.com/samrao2/manager-4.git/”,而不是“ https://github.com/samrao2/manager-4.git/ ”。 后者要求您每次都輸入密碼,而前者將通過 SSH 進行身份驗證,這遠沒有那么刺激。 您可以通過鍵入以下內容來更改存儲庫中的遠程 URL 以使用 git 協議,而不是 https:

git remote set-url origin git://github.com/samrao2/manager-4.git

從您的項目目錄中。

  1. 多個用戶生成自己的 ssh 密鑰, 生成新的 SSH 密鑰並將其添加到 ssh-agent

  2. 將新的 SSH 密鑰添加到您的 GitHub 帳戶

  3. 愛麗絲存儲庫, git bash

    • git config user.name "Alice"
    • git config user.email "alice@email.com"
    • eval $(ssh-agent -s) ,
    • ssh-add ~/.ssh/alice.private
    • ssh -T git@github.com ,測試你的 SSH 連接
    • Git其他操作
  4. 鮑勃存儲庫, git bash

    • git config user.name "Bob"
    • git config user.email "bob@email.com"
    • eval $(ssh-agent -s) ,
    • ssh-add ~/.ssh/bob.private
    • ssh -T git@github.com ,測試你的 SSH 連接
    • Git其他操作

我有一個類似的問題,發現你需要驗證的兩件事:

  1. 上面已經充分討論的鑰匙鏈問題;
  2. Git 最近停止使用密碼,您需要改為生成個人訪問令牌。 注意這很重要,並且是我遇到的問題的根源,在創建令牌時,確保在開發人員選項下向 Github 上的令牌授予權限。

開發者選項下的權限范圍

我遇到了使用以下命令解決的相同問題

git 配置 --global credential.useHttpPath true

問題是您正在嘗試使用舊 github 帳戶的 ssh 密鑰推送到新的 github 帳戶,因此使用此鏈接為新的 github 帳戶生成新的 SSH 密鑰https://help.github.com/en/github/authenticating-to -github/error-permission-to-userrepo-denied-to-userother-repo ,然后將其添加到您的 github 帳戶。 在嘗試推動之后,它起作用了

此處 403 ( error ) 表示憑據錯誤或您無權推送。

解決方案

對於 Windows

單擊窗口按鈕 > 憑據管理器 > Windows 憑據 > 通用憑據

接下來,刪除或編輯 Github 密鑰。

對於 Mac 🍎

1-在 Finder 中,搜索 Keychain Access 應用程序。

2在鑰匙串訪問中,搜索github.com。

3-找到 github.com 的“互聯網密碼”條目。

4-相應地編輯或刪除條目。

欣賞VonC的回答。

為了簡化和添加它,可以按照以下簡單步驟操作:

  1. 從 (Windows) Credential Manager 中刪除所有 GitHub 條目
  2. 在 Git 全局配置中設置 useHttpPath = true

git config --global credential.useHttpPath true

您可以通過檢查來驗證這一點

git config --global -e

這將為每個用戶帳戶創建不同的條目。

我在 Github 有一個個人賬戶和一個企業賬戶。 我同時提交並推送對兩個帳戶的更改。

我所做的是 1) 在不同的會議上運行個人和商業項目; 2) 使用 SSH 鏈接為一個帳戶設置 URL,並為另一個帳戶保留 URL 正常 (HTTPS)。

您可以通過從您之前連接的特定存儲庫中撤銷第二個帳戶“samrao1”的訪問權限來解決此問題。

只需轉到控制面板\\用戶帳戶\\憑據管理器\\編輯通用憑據

在此處輸入圖片說明

並更新您的 git 憑證

如果您仍然遇到相同的問題,請卸載 git 並重新安裝。 那對我有用。 謝謝

檢查您的個人訪問令牌。 編輯令牌中的范圍。 我檢查了令牌中的所有訪問選項。 這樣做,錯誤沒有出現。 https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

僅當您在機器上使用過 git cli 之前

然后只需按開始按鈕打開系統上的憑據管理器並鍵入“憑據管理器”並切換到“Windows 憑據”選項卡。

刪除與https://github.com關聯的現有已保存帳戶,如下所示: 在此處輸入圖片說明

現在再次嘗試推送代碼,這次將彈出身份驗證提示,驗證您的 github 帳戶並祝賀您,您的代碼托管到所需存儲庫的給定分支上。

我遇到了同樣的問題,然后從 Windows 憑據管理器中刪除了 git 憑據

通過更新我的用戶名和憑據解決了這個錯誤:

git config user.name "new name"
git config credential.username "new name"

重要提示:請記住正確設置您的令牌權限。

在我更改權限以允許完全 repo 訪問之前,我遇到了同樣的問題:在此處輸入圖像描述

如果您使用 git 憑證助手

打開~/.git-credentials文件並更改您的token (如果它已過期),

還要檢查您的 GitHub 用戶名是否正確!

從項目目錄中刪除.git文件夾,然后再次從頭開始推送它們對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM