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

Posted

技术标签:

【中文标题】通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:“git-receive-pack not allowed”错误【英文标题】:Pushing from Eclipse to my GitHub repository via HTTPS stopped working: "git-receive-pack not permitted" error 【发布时间】:2022-01-17 05:03:22 【问题描述】:

我最近在几周前推送了我的 GitHub 存储库。我从 GitHub 得到了一条主线,说 GitHub 很快就会退出常规授权,并打算用另一种授权方法替换它。

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

git-receive-pack not permitted

这就引出了两个问题:

    EGit 现在停止工作了吗? 我有 Eclipse 2021-03,如何解决此问题以便进行推送?

【问题讨论】:

GitHub 已禁用 HTTPS 协议。将 git://... 与本地计算机上的 Eclipse 已知并上传到您的 GitHub 帐户的 SSH 密钥一起使用。 @howlger 谢谢。我怎么能在实践中做到这一点?我应该按什么? 如果您没有 SSH 密钥,请在 Eclipse 中转到首选项 General > Network Connections > SSH2 选项卡 Key Management 并点击 生成 RSA 密钥...。在您的 GitHub 帐户中,转到 帐户设置 > SSH 和 GPG 密钥 并添加公钥。最后,将存储库 URL 从 https://... 更改为 git://... @howlger 好的。我已经在 Eclipse 中生成了 RSA 密钥。我将该密钥放入 SSH 和 GPG 密钥中并添加一个公钥。我应该按的是 SSH 密钥还是 GPG 密钥? 这行得通。 youtube.com/… 如果需要,请发布答案。我可以接受。 【参考方案1】:

Since August 13, 2021, GitHub does not support authentication via HTTPS with your GitHub account password for security reasons anymore。相反,在 Eclipse 中,当推送到 GitHub 存储库或从私有存储库获取时,您将收到 git-upload-pack not permitted on 'https://github.com...' 错误。

作为解决方案,使用任一

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

个人访问令牌(GitHub 特定)

    转到your GitHub account to Settings > Developer settings > Personal access tokens 网站:
      点击右上角的生成新令牌按钮 输入一个备注,例如GitHub repo token 选择到期,例如没有过期 勾选复选框repo 点击底部的生成令牌按钮 复制生成的token到剪贴板
    在 Eclipse 的 Git Repositories 视图中:
      右键单击 Remotes GitHub 的子节点origin 或您在您已经克隆了存储库)并选择 Configure Push... 点击更改...按钮更改右上角的URI 用复制生成的 GitHub token 替换密码 点击完成保存以应用更改

SSH

    创建一个 SSH 密钥(如果您已经拥有一个,请跳过此步骤):
      在 Eclipse 中,在 preferences General > Network Connections > SSH2 选项卡 Key Management 中点击 生成 RSA 密钥... 按钮 点击保存私钥...并选择一个位置,最好是用户主目录的子文件夹.ssh
    上传公钥到您的 GitHub 帐户:
      对于新创建的密钥,密钥管理选项卡中显示的字符串复制到剪贴板;对于现有密钥,将其添加到首选项 General > Network Connections > SSH2 选项卡 General 并复制公钥文件的内容<name>.pub 转到您的GitHub account settings to the SSH and GPG keys 部分并点击新的 SSH 密钥 按钮 粘贴复制的公钥到Key字段
    将 HTTPS 更改为 SSH URL 已克隆的存储库:
      在 Eclipse 中,在 Git Repositories 视图中右键单击存储库并选择 Properties 并单击打开按钮 在 config 文件的文本编辑器中,将远程 URL 更改如下:HTTPS(旧;不再适用于 push ):
      url = <b>https</b><b>://</b>github.com<b>/</b>&lt;username&gt;/&lt;repo&gt;.git
      SSH(新):
      url = <b>git@</b>github.com<b>:</b>&lt;username&gt;/&lt;repo&gt;.git

另见:

Video tutorial Import repository from Github to Eclipse using SSH EGit User Guide

【讨论】:

对于任何阅读本文的人:当然,HTTPS 效果很好:如果您不想切换到 SSH,则不必切换到 SSH。 @VonC 我扩展了关于如何在 Eclipse 中切换到个人 GitHub 访问令牌的答案。如果您早点告诉我而不是添加您自己的答案而不是说明如何在 Eclipse 中执行此操作,那将会更好,更有帮助。如果可以的话,我会给你这个提示的声望点,但不幸的是,在 Stack Overflow 上实现游戏化的方式是不可能的。【参考方案2】:

GitHub 已禁用 HTTPS 协议

肯定不是。

我使用 HTTPS 推送到 GitHub 没有任何问题,但我现在必须使用 PAT (Personal Access Token) 作为密码,而不是 GitHub 用户帐户密码。

确保创建一个新令牌,该令牌将遵循 new token format(2021 年 3 月)

ghp_ 用于个人访问令牌

【讨论】:

以上是关于通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:“git-receive-pack not allowed”错误的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

GCP - 谷歌云平台:有没有任何方法可以在没有任何版本控制系统的情况下将代码从 eclipse 推送到云端?

Android NDK 创建可执行文件但未将其推送到设备上 (Eclipse)