【问题标题】:Unable to push to Gitlab, You are not allowed to push code to this project无法推送到 Gitlab,您不允许将代码推送到该项目
【发布时间】:2020-09-25 23:36:52
【问题描述】:

我最近无法将任何更改推送到我在 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 仍然有效。我还尝试重新克隆存储库,制作并提交和推送,但这仍然失败。添加--verbose 选项没有显示更多细节。

我仔细检查了我的 Gitlab 帐户中的 SSH 密钥是否与我的 ~/.ssh/id_rsa.pub 文件中的密钥相匹配。我还尝试添加我的~/.ssh/config 的条目:

Host gitlab.com
 IdentityFile ~/.ssh/id_rsa

但这没有任何效果。

这里发生了什么?为什么 Gitlab 突然不接受存档的 SSH 密钥?

【问题讨论】:

  • 我发生了类似的事情,但我正试图向我的系统添加第二个 gitlab 帐户。我有两个 ssh 密钥并尝试创建一个使用第二个密钥的 ssh 配置。出于某种原因,即使在我使用ssh -Tvvv git@my-aliased-gitlab.com 进行测试时它确实尝试使用密钥,它仍然以错误的身份登录我。我最终在gitlab's documentation page 上找到了解决方案,并这样做以使其工作:git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/private-key-filename-for-this-repository -F /dev/null"

标签: git ssh gitlab


【解决方案1】:

我通过拥有多个 gitlab 帐户遇到了这个问题,每个帐户都有不同的 ssh 密钥。登录网站、创建项目、让它在世界范围内可访问、将其拉下,然后无法向上推,这很令人困惑。

问题是我有第二个 gitlab 帐户,其中的钥匙首先出现在我的钥匙链中。

例如,account1~/.ssh/id_rsa 相关联,account2~/.ssh/id_ed25519 相关联。我使用account1 登录到 gitlab,创建并克隆一个 repo,然后无法推送。问题是我的 ssh 钥匙串首先有 id_ed25519,所以 gitlab 认为 account2 正在尝试将编辑推回,它没有权限。

我注意到有一个功能要求错误消息更详细,以便更容易调试此问题。他们说“好主意”然后关闭了请求。 :/

【讨论】:

    【解决方案2】:

    首先检查远程 URL (git remote -v) 确实是 SSH 的 (git@gitlab:...),而不是 HTTPS 的 (https://gitlab.com/...)

    在后一种情况下 (HTTPS),只有您的 git config credential.helper 可以解释错误,因为缓存了错误的凭据(您的 GitLab 帐户的用户名/密码)

    如果是前者,请尝试使用 old PEM format instead of the new OPENSSH one 创建一个新的 SSH 密钥,以防 GitLab 更好地支持。

    【讨论】:

      猜你喜欢
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      相关资源
      最近更新 更多