2015-11-01 42 views
8

我是“项目”回购的所有者,但不知何故我无法推送到它。Github验证,但不会允许代码推入

[email protected] ~/rails_projects/project $ git remote -v 
origin [email protected]:user/project.git (fetch) 
origin [email protected]:user/project.git (push) 

这里是认证检查:

[email protected] ~/rails_projects/project $ ssh -T [email protected] 
Hi user/project! You've successfully authenticated, but GitHub does not provide shell access. 

推送尝试:

[email protected] ~/rails_projects/project $ git push origin qa 
ERROR: The key you are authenticating with has been marked as read only. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

任何想法如何解决这个问题?

+0

您是否属于Github上该组织的一部分?可以为特定成员设置对存储库的只读访问权限。也许情况就是这样。 https://github.com/blog/674-introducing-organizations – toniedzwiedz

+0

不,我是我的回购所有者 – Abram

回答

7

看起来您可能拥有多个SSH密钥,并且提供的密钥是存储库的部署密钥,而不是您帐户的具有写入权限的密钥之一。有两种处理方法:

  1. 删除SSH代理中的所有密钥,然后重新添加正确的帐户密钥。

    ssh-add -D 
    ssh-add /path/to/correct/key 
    
  2. 使用HTTPS instead of SSH。您可以通过changing the remote URL来源轻松地执行此操作,以便使用HTTPS方案代替SSH。

其中一个或另一个应该工作,除非你只是简单地提交了错误的凭证。

+0

运行'ssh-add -l'显示我认为我使用的密钥不包含在内。所以我加了它,现在一切正常。谢谢。 – Abram

4

错误:

ERROR: The key you are authenticating with has been marked as read only.

可能意味着,要么你:

  • 你试图通过使用与另一个仓库相关的关键推到回购(例如,作为部署键) ,所以check由:

    $ ssh -i ~/.ssh/id_rsa [email protected] 
    Hi user/project! You've successfully authenticated, but GitHub does not provide shell access. 
    

    而且比较user/project如果是相同的作为您想要推送的存储库。

  • 你的密钥已被锁定(例如,它很长时间没有使用),所以你必须通过在你的GitHub用户配置文件(/settings/ssh)上完成对现有ssh密钥的审计来重新确认它,

  • 您正在同时使用多个密钥,请检查:ssh-add -l(如果是这样,请将其删除并重新添加正确的密钥)。

所以:

Please make sure you have the correct access rights and the repository exists.

通过以下简单步骤:

  1. 请注意您的RSA指纹通过:

    $ ssh-add -l 
    2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx (stdin) (RSA) 
    
  2. 然后检查在GitHub上,如果它已经添加到您的帐户或存储库中:

    • 帐户,请检查:/settings/ssh(SSH密钥),

      • 如果丢失,请添加它,
      • 如果重点是已在使用,用它找出哪些其他的回购(见下文),然后取出并在您的帐户重新添加,
    • 特定的存储库,请检查::name/:repo/settings/keys(部署键),

    • 如果你不是存储库的所有者,请检查你是否在正确的组(访问)。

或者使用&(例如,通过公开披露的话)添加新键,troubleshoot common SSH Problemscontact GitHub support,因为他们可以撤销它的一些原因。