推送到 GitHub 上的存储库时身份验证失败(从 GitHub Desktop 和命令行)

tek*_*irl 8 git github ssh-keys

  • 我在 Windows 10 64 位上使用 GitHub Desktop v2.5.7 和 Git v2.29.1。
  • 我的 GitHub 帐户启用了2FA
  • 我可以使用 GitHub Desktop 或命令行从 GitHub 克隆存储库
  • 我已生成 SSL 密钥并按照所有说明将其添加到本地并添加到 GitHub
  • 我已经生成了个人访问令牌并尝试在命令行中使用它以及我的密码

问题:当我尝试将更改推送到存储库时,出现身份验证错误。

GitHub Desktop 中的错误:

错误的屏幕截图 - 身份验证失败。 一些常见的原因包括...

命令行错误:

sslverify 打开时:

致命:无法访问'https://github.com/jacquibo/neo4jDataSets.git/':SSL证书问题:无法获取本地颁发者证书

sslverify 关闭时:

信息:请在浏览器中完成身份验证...
致命:不正确的客户端凭据:传递的 client_id 和/或 client_secret 不正确。[https://docs.github.com/apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors/#in Correct-client-credentials]
“https://github.com”的用户名':my@githubemail.co.uk
'https://my@githubemail.co.uk@github.com'的密码:
远程:无匿名写入权限。
致命:“https://github.com/myusername/myrepo.git/”身份验证失败

我努力了:

  • GitHub 中错误中的所有建议
  • 在本地和 GitHub 上添加 SSH 密钥(当我使用时,ssh -i mycertname -vT git@github.com我收到一条权限被拒绝的消息,请参见下文)
  • 添加个人访问令牌
  • 检查来源是否使用 HTTPS

使用命令行测试 SSL 证书时出错:

OpenSSH_8.4p1、OpenSSL 1.1.1h 2020 年 9 月 22 日
debug1:读取配置数据 /etc/ssh/ssh_config
debug1:连接到 github.com [140.82.121.4] 端口 22。
debug1:连接到地址 140.82.121.4 端口 22:权限被拒绝
ssh:连接到主机 github.com 端口 22:权限被拒绝

我该如何解决这个问题?

只能在 GitHub.com 上实际编辑文件不太实用。

pet*_*eru 3

您需要使用 SSH 来访问存储库,而不是 HTTPS。

将远程的 URL 从 更改https://xxxgit://xxx

您可以使用 GitHub 存储库代码页右侧的绿色按钮来帮助您获取正确的 URL。更改自:

HTTPS 网址

SSH 网址

您需要做的另一件事是确保您本地安装了最新的 Git。如果安装了旧版本的 Git,则可能会遇到错误。