[英]Unable to push to Gitlab, You are not allowed to push code to this project
我最近無法將任何更改推送到 Gitlab.com 上的任何存儲庫。
我知道如果您更改了 SSH 密鑰或站點關閉,有時會發生這種情況,但據我所知,我沒有更改~/.ssh
目錄中的任何內容,而且 Gitlab.com 似乎正在運行。
然而,如果我運行git push
我會得到錯誤:
You are not allowed to push code to this project.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
奇怪的是, git pull
仍然有效。 我也嘗試重新克隆 repo,制作、提交和推送,但仍然失敗。 添加--verbose
選項沒有顯示更多細節。
我仔細檢查了我的 Gitlab 帳戶中文件中的 SSH 密鑰是否與我的~/.ssh/id_rsa.pub
文件中文件中的密鑰匹配。 我還嘗試添加我的~/.ssh/config
條目:
Host gitlab.com
IdentityFile ~/.ssh/id_rsa
但這沒有效果。
這里發生了什么? 為什么 Gitlab 突然不接受文件中的 SSH 密鑰?
首先檢查遠程 URL ( git remote -v
) 確實是 SSH ( git@gitlab:...
),而不是 HTTPS ( https://gitlab.com/...
)
在后一種情況下(HTTPS),只有您的git config credential.helper
可以解釋錯誤,因為緩存了錯誤的憑據(您的 GitLab 帳戶的用戶名/密碼)
如果是前者,請嘗試使用舊的 PEM 格式而不是新的 OPENSSH 格式創建新的 SSH 密鑰,以防 GitLab 更好地支持。
我通過擁有多個 gitlab 帳戶來解決這個問題,每個帳戶都有不同的 ssh 密鑰。 登錄網站,創建項目,使其世界可訪問,將其拉下,然后無法推回,這令人困惑。
問題是我有第二個 gitlab 帳戶,其中的密鑰首先出現在我的鑰匙鏈中。
例如, account1
與~/.ssh/id_rsa
相關聯, account2
與~/.ssh/id_ed25519
相關聯。 我使用account1
登錄到 gitlab,創建並克隆一個 repo,然后無法推送。 問題是我的 ssh 鑰匙串首先有id_ed25519
,所以 gitlab 認為account2
試圖將編輯推回,它沒有權限。
我注意到有一個功能要求錯誤消息更詳細,以便更容易調試這個問題。 他們說“好主意”然后關閉了請求。 :/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.