5

我无法通过 HTTPS 和 SSH 推送(但 pull 可以正常工作)到我公司的 git 存储库,并且非常感谢任何帮助。这是一个与这里看到的问题类似的问题:(Git 著名的“错误:.git 的权限拒绝用户”)除了我正在推送到公司回购而不是个人回购——想知道这是否可能有事可做带有公司防火墙。

这是我所做的(在已经克隆了 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。在团队成员设置访问权限并推送一些代码后,这些错误再次出现;这可能是问题的根源吗?

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

4

3 回答 3

5

发生此错误是因为 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

于 2015-09-21T07:41:04.287 回答
1

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

于 2013-08-15T01:46:58.727 回答
1

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

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

  • 在队友的凭据下登录,
  • 删除,和
  • 将自己重新添加为 repo 的所有者。
于 2013-10-26T22:42:49.383 回答