通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:"git-receive-pack not permitted" 错误
Pushing from Eclipse to my GitHub repository via HTTPS stopped working: "git-receive-pack not permitted" error
我最近在几周前推送了我的 GitHub 存储库。我从 GitHub 得到了一条消息,说 GitHub 即将退出常规授权,并打算用另一种授权方式取而代之。
所以今天我向我的 GitHub 存储库推送了一个新更新并收到消息:
git-receive-pack not permitted
这引出了两个问题:
- EGit 现在停止工作了吗?
- 我有 Eclipse 2021-03,我该如何解决这个问题才能进行推送?
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...'
错误。
作为解决方案,使用
- a GitHub 特定 个人访问令牌 作为密码,而不是您以前使用的 GitHub 帐户密码或
- SSH with an SSH key 其中私钥和 public key 在本地机器上并在 Eclipse 中配置,public key 已上传转至您的 GitHub 帐户。
个人访问令牌(GitHub 特定)
- 转到your GitHub account to Settings > Developer settings > Personal access tokens 网站:
- 点击右上角的生成新令牌按钮
- 输入一个备注,例如
GitHub repo token
- 选择有效期,例如没有过期
- 勾选复选框 repo
- 点击底部的生成令牌按钮
- 复制生成的令牌到剪贴板
- 在 Eclipse 中,在 Git 存储库 视图中:
- 右击远程s子节点GitHub(
origin
或您在克隆存储库时选择的名称)并选择 Configure Push...
- 点击右上角的更改...按钮更改URI
- 用复制生成的GitHubtoken
替换密码
- 单击完成并保存以应用更改
SSH
- 创建 SSH 密钥(已有密钥可跳过此步骤):
- 在 Eclipse 中,在 首选项 常规 > 网络连接 > SSH2 选项卡中 密钥管理 点击 生成 RSA 密钥... 按钮
- 点击保存私钥...并选择一个位置,最好是用户主目录的子文件夹
.ssh
- 上传 public 密钥 到您的 GitHub 帐户:
- 对于新创建的密钥,将密钥管理选项卡中显示的字符串复制到剪贴板;对于现有密钥,将其添加到首选项 General > Network Connections > SSH2 选项卡 General 并复制 public 密钥文件的内容
<name>.pub
- 转到您的 GitHub account settings to the SSH and GPG keys 部分并点击 新 SSH 密钥 按钮
- 粘贴复制的public键到键字段
- 将已克隆存储库的 HTTPS 更改为 SSH URLs:
- 在 Eclipse 中,在 Git 存储库 视图中右键单击存储库并选择 属性并单击打开按钮
- 在
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
另请参阅:
GitHub has disabled the HTTPS protocol
当然不是。
我使用 HTTPS 推送到 GitHub 没有任何问题,但我现在必须使用 PAT (Personal Access Token) 而不是 GitHub 用户帐户密码作为密码。
确保创建一个新令牌,该令牌将遵循 new token format(2021 年 3 月)
ghp_
for Personal Access Tokens
我在使用 eclipse 和 git 时使用了 ssh,但使用错误的密钥时遇到了问题。
搜索错误时:“无法在 github.com:22 登录”
它把我送到了这个答案:Cannot log in GitHub into Eclipse 最终把我带到了这个答案。
对于任何偶然发现此问题的人,您需要导航至
Window -> Preferences
然后从那里展开
General -> Network Connections -> SSH2
然后在右窗格中select“常规”选项卡并单击添加私钥..按钮和select用于git。如果您为密钥使用了密码(您应该这样做),那么系统会提示您输入密码。
在此之后我可以再次推拉没有问题。
我最近在几周前推送了我的 GitHub 存储库。我从 GitHub 得到了一条消息,说 GitHub 即将退出常规授权,并打算用另一种授权方式取而代之。
所以今天我向我的 GitHub 存储库推送了一个新更新并收到消息:
git-receive-pack not permitted
这引出了两个问题:
- EGit 现在停止工作了吗?
- 我有 Eclipse 2021-03,我该如何解决这个问题才能进行推送?
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...'
错误。
作为解决方案,使用
- a GitHub 特定 个人访问令牌 作为密码,而不是您以前使用的 GitHub 帐户密码或
- SSH with an SSH key 其中私钥和 public key 在本地机器上并在 Eclipse 中配置,public key 已上传转至您的 GitHub 帐户。
个人访问令牌(GitHub 特定)
- 转到your GitHub account to Settings > Developer settings > Personal access tokens 网站:
- 点击右上角的生成新令牌按钮
- 输入一个备注,例如
GitHub repo token
- 选择有效期,例如没有过期
- 勾选复选框 repo
- 输入一个备注,例如
- 点击底部的生成令牌按钮
- 复制生成的令牌到剪贴板
- 点击右上角的生成新令牌按钮
- 在 Eclipse 中,在 Git 存储库 视图中:
- 右击远程s子节点GitHub(
origin
或您在克隆存储库时选择的名称)并选择 Configure Push... - 点击右上角的更改...按钮更改URI
- 用复制生成的GitHubtoken 替换密码
- 单击完成并保存以应用更改
- 右击远程s子节点GitHub(
SSH
- 创建 SSH 密钥(已有密钥可跳过此步骤):
- 在 Eclipse 中,在 首选项 常规 > 网络连接 > SSH2 选项卡中 密钥管理 点击 生成 RSA 密钥... 按钮
- 点击保存私钥...并选择一个位置,最好是用户主目录的子文件夹
.ssh
- 上传 public 密钥 到您的 GitHub 帐户:
- 对于新创建的密钥,将密钥管理选项卡中显示的字符串复制到剪贴板;对于现有密钥,将其添加到首选项 General > Network Connections > SSH2 选项卡 General 并复制 public 密钥文件的内容
<name>.pub
- 转到您的 GitHub account settings to the SSH and GPG keys 部分并点击 新 SSH 密钥 按钮
- 粘贴复制的public键到键字段
- 对于新创建的密钥,将密钥管理选项卡中显示的字符串复制到剪贴板;对于现有密钥,将其添加到首选项 General > Network Connections > SSH2 选项卡 General 并复制 public 密钥文件的内容
- 将已克隆存储库的 HTTPS 更改为 SSH URLs:
- 在 Eclipse 中,在 Git 存储库 视图中右键单击存储库并选择 属性并单击打开按钮
- 在
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
另请参阅:
GitHub has disabled the HTTPS protocol
当然不是。
我使用 HTTPS 推送到 GitHub 没有任何问题,但我现在必须使用 PAT (Personal Access Token) 而不是 GitHub 用户帐户密码作为密码。
确保创建一个新令牌,该令牌将遵循 new token format(2021 年 3 月)
ghp_
for Personal Access Tokens
我在使用 eclipse 和 git 时使用了 ssh,但使用错误的密钥时遇到了问题。
搜索错误时:“无法在 github.com:22 登录” 它把我送到了这个答案:Cannot log in GitHub into Eclipse 最终把我带到了这个答案。
对于任何偶然发现此问题的人,您需要导航至
Window -> Preferences
然后从那里展开
General -> Network Connections -> SSH2
然后在右窗格中select“常规”选项卡并单击添加私钥..按钮和select用于git。如果您为密钥使用了密码(您应该这样做),那么系统会提示您输入密码。
在此之后我可以再次推拉没有问题。