通过 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 【发布时间】:2021-10-17 23:25:45 【问题描述】:我最近在几周前推送了我的 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到剪贴板
-
右键单击 Remotes GitHub 的子节点(
origin
或您在您已经克隆了存储库)并选择 Configure Push...
点击更改...按钮更改右上角的URI
用复制生成的 GitHub token 替换密码
点击完成和保存以应用更改
SSH
-
创建一个 SSH 密钥(如果您已经拥有一个,请跳过此步骤):
-
在 Eclipse 中,在 preferences General > Network Connections > SSH2 选项卡 Key Management 中点击 生成 RSA 密钥... 按钮
点击保存私钥...并选择一个位置,最好是用户主目录的子文件夹
.ssh
-
对于新创建的密钥,将密钥管理选项卡中显示的字符串复制到剪贴板;对于现有密钥,将其添加到首选项 General > Network Connections > SSH2 选项卡 General 并复制公钥文件的内容
<name>.pub
转到您的GitHub account settings to the SSH and GPG keys 部分并点击新的 SSH 密钥 按钮
粘贴复制的公钥到Key字段
-
在 Eclipse 中,在 Git Repositories 视图中右键单击存储库并选择 Properties 并单击打开按钮
在
config
文件的文本编辑器中,将远程 URL 更改如下:HTTPS(旧;不再适用于 push ):url = <b>https</b><b>://</b>github.com<b>/</b><username>/<repo>.git
SSH(新):url = <b>git@</b>github.com<b>:</b><username>/<repo>.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”错误