通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:“不允许 git-receive-pack”错误

MrY*_*Yui 6 eclipse git github egit

几周前,我最近推送了我的 GitHub 存储库。我从 GitHub 得到一个主要信息,即 GitHub 即将退出常规授权,并准备用另一种授权方法替换它。

所以今天我向我的 GitHub 存储库推送了一个新更新并收到了消息:

git-receive-pack not permitted
Run Code Online (Sandbox Code Playgroud)

这就引出了两个问题:

  1. EGit 现在停止工作了吗?
  2. 我有 Eclipse 2021-03,我该如何解决这个问题以便我可以进行推送?

how*_*ger 9

自2021年8月13日,GitHub上不支持通过认证HTTPS与您的GitHub账号密码出于安全原因。相反,在 Eclipse 中,当推送到 GitHub 存储库或从私有存储库获取时,您将收到git-upload-pack not permitted on 'https://github.com...'错误消息。

作为解决方案,请使用

  • GitHub 特定的个人访问令牌作为密码,而不是您以前使用的 GitHub 帐户密码或
  • 使用 SSH 密钥进行SSH,其中私钥和公钥在您的本地计算机上并在 Eclipse 中配置,而公钥则上传到您的 GitHub 帐户。

个人访问令牌(特定于 GitHub)

在此处输入图片说明

  1. 转到您的GitHub的帐户,以设置>开发者设置>个人访问令牌的网站:
    1. 单击右上角的生成新令牌按钮
      • 输入注释,例如GitHub repo token
      • 选择过期,例如没有过期
      • 勾选复选框回购
    2. 单击底部的生成令牌按钮
    3. 生成的令牌复制到剪贴板
  2. 在 Eclipse 中,在Git 存储库视图中:
    1. 右键单击GitHubRemote s节点origin或您在克隆存储库时选择的名称)并选择配置推送...
    2. 单击更改...按钮更改右上角的 URI
    3. 复制的生成的 GitHub令牌替换密码
    4. 单击完成保存以应用更改

SSH

  1. 创建一个 SSH 密钥(如果你已经有了,请跳过这一步):
    1. 在 Eclipse 中,在首选项General > Network Connections > SSH2选项卡Key Management点击Generate RSA Key...按钮
    2. 点击Save Private Key...并选择一个位置,最好是.ssh用户主目录的子文件夹
  2. 将公钥上传到您的 GitHub 帐户:
    1. 对于新创建的密钥,密钥管理选项卡中显示的字符串复制到剪贴板;对于现有密钥,将其添加到首选项General > Network Connections > SSH2选项卡General并复制公钥文件的内容<name>.pub
    2. 转到您的GitHub 帐户设置SSH 和 GPG 密钥部分,然后点击新建 SSH 密钥按钮
    3. 将复制的公钥粘贴Key字段中
  3. 将 HTTPS 更改为已克隆存储库的SSH URL
    1. 在 Eclipse 中,在Git Repositories视图中右键单击存储库并选择Properties并单击Open按钮
    2. config文件的文本编辑器中,按如下方式更改远程 URL:

      HTTPS(旧;不再适用于推送):
      url = https://github.com/<username>/<repo>.git
      Run Code Online (Sandbox Code Playgroud)
      SSH(新):
      url = git@github.com:<username>/<repo>.git
      Run Code Online (Sandbox Code Playgroud)

也可以看看: