【问题标题】:Git: ERROR: Permission to repo.git denied to userGit:错误:repo.git 的权限被拒绝给用户
【发布时间】:2013-08-17 04:30:16
【问题描述】:

我无法通过 HTTPS 和 SSH 推送(但 pull 工作正常)到我公司的 git 存储库,非常感谢您对此提供任何帮助。这是一个与此处看到的问题类似的问题:(Git's famous "ERROR: Permission to .git denied to user") 除了我正在推动公司回购而不是个人回购——想知道这是否与公司防火墙有关。

这是我所做的(在已经克隆了 repo 之后):

通过 SSH:

git remote set-url origin [SSH url of my company repo]

设置我的 ssh 密钥并将其添加到我的用户帐户; ssh 到 git@github.com 给了我权限被拒绝(公钥),但 ssh 到 git@git.soma.company.com 验证成功。

git pull
git push origin master

这给了我:

错误:组织/repo.git 的权限被拒绝给用户。 致命:远端意外挂断

通过 HTTPS:

git remote set-url origin [HTTPS url of my company repo]
git pull
git push origin master

提示我输入用户名和密码,然后给我:

错误:无法访问 URL [我公司 repo 的 HTTPS url],返回代码 22 致命:git-http-push 失败

这是我的 .git/config 的内容:

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [HTTPS url of my company repo]
[branch "master"]
remote = origin
merge = refs/heads/master

我已确认我已被添加为该组织的合作者。删除我自己并重新添加并没有解决问题,删除我的 ssh 密钥并生成新密钥并将它们添加到我的帐户中也没有。我还尝试删除我的整个用户帐户并从头开始设置,以前曾解决过此问题,但现在似乎不起作用并产生相同的错误。

有一件事是,这个问题最初是在我设置对 repo 的 git 访问时发生的,我通过删除我的用户帐户并重新设置来解决它。在接下来的 2 个月里,我能够毫无问题地通过 HTTPS 成功推送到 repo。在团队成员设置访问权限并推送一些代码后,这些错误再次出现;这可能是问题的根源吗?

如果有人可以帮助我,我将永远感激不尽。

【问题讨论】:

    标签: ubuntu github


    【解决方案1】:

    此错误是由于 github 用户帐户的冲突而发生的,这意味着可能其他人访问了他的 github 帐户并错误地将他的密码保存在您的 github 详细信息中

    现在,每次您尝试推入 repo 时,github 都会面临冲突。

    所以解决方案是。 如果您是 mac 用户

    1. 打开您的启动板并搜索钥匙串访问权限。
    2. 现在从钥匙串帐户中删除您的 github 凭据。
    3. 推送到您的仓库并添加您的帐户详细信息。

    对于其他系统 尝试改用钥匙串访问应用程序:

    https://help.github.com/articles/updating-credentials-from-the-osx-keychain/#updating-your-credentials-via-keychain-access

    【讨论】:

      【解决方案2】:

      还有多少人在使用这个 repo?根据您的描述,似乎每个人都使用相同的 ssh 用户名。这可能只是您匿名 URL 的方式,但如果每个人都使用相同的用户名,那么 ssh 可能会使用一个 authorized_keys 列表来确定哪些密钥是有效的。添加新用户后,您的 ssh 密钥可能已从服务器上的授权密钥列表中替换、删除或省略。

      【讨论】:

      • 感谢您的快速回复。我们有 4 个用户在不同的 ssh 用户名和不同的 ssh 密钥下为 repo 做出贡献。
      【解决方案3】:

      刚刚意识到我从来没有跟进过:

      我通过以下方式解决了这个问题:

      • 使用队友的凭据登录,
      • 删除和
      • 将自己重新添加为 repo 的所有者。

      【讨论】:

      • 感谢您的反馈。 +1
      • 啊啊啊啊!我有一台旧电脑,所以我不能这样做。尝试删除所有 ssh 密钥,但它仍然将我识别为其他用户。
      猜你喜欢
      • 2012-03-25
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多