Git着名的“错误:允许用户拒绝.git”

我试过Googlesearch,并阅读http://help.github.com/troubleshooting-ssh/和各种各样的指南。 我不能git push -u origin mastergit push origin master (相同的命令)。

我有我的git帐户至less2年左右。 我已经成功地在我的笔记本电脑上创build了回购和push -u origin master ,但在这个桌面上,我遇到了问题。

这是我的尝试:

1.我已经设置了我的git用户名

2.我已经设置了我的git用户电子邮件

3.我已将我的/home/meder/.ssh/id_rsa.pub的内容上传到github的帐户页面。 我已经validation了我没有粘贴任何空格

4.我用这些内容创build了〜/ .ssh / config:

  Host github.com User git Hostname github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa 

我已经将.ssh修改为700,id_rsa 600

5.我已经添加了适当的远程来源, 而不会造成拼写错误git remote add origin git@github.com:medero/cho.git

6.确认#5,这是我的.git / config。 该目录是正确的,而不是另一个目录:

 [remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = git@github.com:medero/cho.git 

7. ssh git@github.com -v给我一个成功的身份validation

一个奇怪的是,它附带的用户名。 我的github用户名是medero ,而不是medert

嗨,mederot! 您已成功通过身份validation,但GitHub不提供shell访问权限。

9.不在代理或防火墙后面

10.提供的关键是,inheritance自-v的输出:

 debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /home/meder/.ssh/known_hosts:58 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering public key: /home/meder/.ssh/id_rsa debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Server accepts key: { some stuff, dont know if i should share it debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Authentication succeeded (publickey). 

11.这是我使用的命令

 mkdir cho git init touch README git add README git commit -m 'test' git remote add origin git@github.com:medero/cho.git git push -u origin master 

12.我不想创build一个新的SSH密钥。

13.如果我使用ssh克隆克隆并进行编辑,提交和git push,我会得到同样的结果。

14.这是实际的错误:

 $ git push ERROR: Permission to medero/cho.git denied to mederot. fatal: The remote end hung up unexpectedly 

15.我已经设置了我的github用户名和github标记:

$ git config –global github.user medero $ git config –global github.token 0123456789yourf0123456789token设置系统上所有git实例的GitHub标记

16.我已经确认我的github用户名不是mederot而且我的github标记是正确的(通过我的帐户页面validation前2个字符和最后2个字符)。

17.要确认#16,〜/ .gitconfig包含

 [github] token = mytoken... user = medero 

18.如果甚至需要,我做了ssh-key add ~/.ssh/id_rsa

说法:

我怀疑有些东西是可疑的,因为当我通过sshauthentication时,用户的问候语是mederot而不是medero ,这是我的意思。 在我的github帐户可能有东西可能被错误地caching?

我也怀疑一些本地sshcaching奇怪,因为如果我mv ~/.ssh/id_rsa.pub POOPOO mv ~/.ssh/id_rsa KAKAmv ~/.ssh/id_rsa.pub POOPOO ,做ssh git@github.com -v ,它仍然validation我说,它服务我的/home/meder/.ssh/id_rsa当我改名? 它必须被caching?!

在第18步中,我假设你的意思是ssh-add ~/.ssh/id_rsa ? 如果是这样,那就解释了这个:

我也怀疑一些本地sshcaching奇怪,因为如果我mv〜/ .ssh / id_rsa KAKA和mv〜/ .ssh / id_rsa.pub POOPOO,做ssh git@github.com -v,它仍然validation我说,它服务我的/home/meder/.ssh/id_rsa当我改名? 它必须被caching?!

…因为ssh-agent正在caching你的密钥。

如果你看GitHub,有一个mederot帐户。 你确定这跟你没有关系吗? GitHub不应该允许将相同的SSH公钥添加到两个帐户,因为当您使用git@github.com:... URL时,它将根据SSH密钥标识用户。 (这不应该被允许在这里证实。)

所以,我怀疑(按可能性顺序)下列情况之一是:

  1. 您以前创build了mederot帐户,并添加您的SSH密钥。
  2. 其他人已经获得您的公钥的副本,并将其添加到mederot GitHub帐户。
  3. GitHub中有一个可怕的错误。

如果不是1,那么我会向GitHub报告,所以他们可以检查2或3。

更多 :

ssh-add -l检查是否存在多个标识如果存在,则通过ssh-add -d将其删除“该密钥文件”

谷歌search了几天之后,我发现这是唯一一个类似于我的情况的问题。

有一天我刚刚解决了这个问题!

我想我必须在这里写下我的答案来帮助传入的search。

这是我做的:

  1. 打开“Keychain Access.app” (您可以在Spotlight或LaunchPad中find它)

  2. 在类别中select“所有项目”

  3. search“git”

  4. 删除每个旧的和陌生的项目

  5. 尝试再次推,它只是工作

如果问题出现在Windows上,则从Windows历史logging中删除证书。

  • 去凭证经理
  • 转到Windows凭据
  • 删除通用凭证下的条目
  • 尝试再次连接。这次,它应该提示您input正确的用户名和密码。

在这里输入图像说明 在这里输入图像说明

从git中删除凭据

它由于冲突。

清除ssh-agent的所有密钥

 ssh-add -d ~/.ssh/id_rsa ssh-add -d ~/.ssh/github 

添加github ssh密钥

 ssh-add ~/.ssh/github 

它应该现在工作。

我发现解决scheme是相同的@spyar提供哪个是钥匙串访问应用程序存储旧用户名。

这种情况有两种解决scheme:

  1. 删除Keychain Access中的信息
    • 打开钥匙串访问应用程序
    • searchgithub
    • 删除相应的凭证

要么

  1. 如果你使用要使用ssh密钥 。 您只需从https更改您的回购url

https://github.com/username/repo.git

git@github.com:用户名/ repo.git

希望这可以帮助。

我正在使用Mac和问题是通过从钥匙串访问应用程序删除githublogging解决:这是我做了什么:

  1. 打开“Keychain Access.app”(你可以在Spotlight或者LaunchPad中find它)
  2. 在类别中select“所有项目”
  3. search“git”
  4. 删除每个旧的和陌生的项目尝试再次推,它只是工作

上面的步骤是从@spyar复制轻松。

我和你有同样的问题。 经过了很长时间的谷歌search,我发现我的错误是由多个用户在他们的帐户中添加了相同的密钥引起的。

所以,这里是我的解决scheme:删除错误的用户的SSH密钥(我可以这样做,因为错误的用户也是我的帐户)。 如果错误用户不是您的帐户,您可能需要更改您的ssh密钥,但我不认为这会发生。

而且我认为你的问题可能是由你的帐户名称中的错误错误造成的。

这个问题也是由:

如果你在mac / linux上,并且在你的〜/ .ssh / config中使用'ControlMaster',那么可能会有一些ssh控制主进程正在运行。

要find它们,请运行:

 ps aux | grep '\[mux\]' 

并杀死相关的。

在Mac上,如果您有多个GitHublogin名并且没有使用SSH,请使用以下命令强制正确login:

 git remote set-url origin https://username@github.com/username/repo-name.git 

如果您遇到问题推送到私人存储库,这也适用。