Github验证但不允许代码推送

Abr*_*ram 9 git github

我是"项目"回购的所有者,但不知怎的,我无法推动它.

user@none ~/rails_projects/project $ git remote -v
origin  git@github.com:user/project.git (fetch)
origin  git@github.com:user/project.git (push)
Run Code Online (Sandbox Code Playgroud)

这是验证检查:

user@none ~/rails_projects/project $ ssh -T git@github.com
Hi user/project! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)

推送尝试:

user@none ~/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.
Run Code Online (Sandbox Code Playgroud)

知道如何修复此错误吗?

Tod*_*obs 11

您可能有多个SSH密钥,并且显示的密钥是存储库的部署密钥,而不是具有写入权限的帐户密钥之一.有两种方法可以解决这个问题:

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

    ssh-add -D
    ssh-add /path/to/correct/key
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用HTTPS而不是SSH.你可以很容易地做到这一点改变了远程URL原点使用HTTPS方案,而不是SSH.

除非您只是简单地提供错误的凭据,否则其中一个或另一个应该有效.


Tuh*_* A. 9

这是我犯的一个愚蠢的错误,修复方法很简单。只需删除部署密钥,再次添加相同的私钥或新的私钥,这一次,只需 don't forget to mark the "Allow write access" option.

只是在 github 中添加新的 SSH 密钥时不要忘记标记它


ken*_*orb 5

错误:

错误:您正在验证的密钥已被标记为只读。

可能意味着您:

  • 您正在尝试使用与另一个存储库关联的密钥(例如作为部署密钥)推送到存储库,因此请检查

    $ ssh -i ~/.ssh/id_rsa git@github.com
    Hi user/project! You've successfully authenticated, but GitHub does not provide shell access.
    
    Run Code Online (Sandbox Code Playgroud)

    并比较user/project它是否与您要推送的存储库相同。

  • 您的密钥已被锁定(例如很长时间未使用),因此您必须通过在您的 GitHub 用户配置文件 ( /settings/ssh) 中完成对现有 ssh 密钥的审核来重新确认它,

  • 您同时使用多个键,请检查:(ssh-add -l如果是,请删除它们并再次重新添加正确的键)。

所以:

请确保您拥有正确的访问权限并且存储库存在。

通过以下简单步骤:

  1. 通过以下方式记录您的 RSA 指纹:

    $ ssh-add -l
    2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx (stdin) (RSA)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后在 GitHub 上检查它是否已添加到您的帐户或存储库中:

    • 对于帐户,请查看:/settings/ssh(SSH 密钥),

      • 如有遗漏请补充
      • 如果Key 已在使用中,请查找使用它的其他存储库(见下文),然后删除并重新添加到您的帐户中,
    • 对于特定的存储库,请查看:(:name/:repo/settings/keys部署密钥),

    • 如果您不是存储库所有者,请检查您是否在正确的组中(具有推送访问权限)。

或者使用并添加新密钥,解决常见的 SSH 问题联系 GitHub 支持,因为他们可能会出于某种原因撤销它(例如通过公开披露)。