git eclipse 更新 2021-03 后身份验证失败

git auth fails after eclipse update 2021-03

在最近的 eclipse 更新 2021-03 之后,所有 bitbucket.org 存储库都不能 pull/push 了:

Pulling 1 repository
   git@bitbucket.org:Acountxxx/Repoxxx.git: Cannot log in at bitbucket.org:22
   git@bitbucket.org:Acountxxx/Repoxxx.git: Cannot log in at bitbucket.org:22

我尝试在一个新的工作区中克隆存储库,同样使用 ssh:

URI: ssh://bitbucket.org/REPOxxxx.git
主持人:bitbucket.org
存储库路径:REPOxxxxx.git 协议:ssh
端口:空白
用户:空白
密码:空白

运行 进入同样的异常:

ssh://bitbucket.org:Acountxxx/Repoxxx.git: Cannot log in at bitbucket.org:22

CMD git pullgit push 仍然可以正常工作。

有没有人遇到同样的问题并找到解决方案?

环境:
Windows 10
git 版本 2.30.1.windows.1
月食 2021-03
电子版:5.11.0.202103091610-r

编辑:同样有趣的是,其他存储库,例如来自 github 仍然可以正常工作。此行为对于 bitbucket 上的私有和 public 存储库是相同的。

您可能面临 EGit/JGit 5.11 的以下已知问题,对此有两个解决方法(请参阅 New and Noteworthy of EGit 5.11):

Bug 572056: Connecting to bitbucket.org with an RSA key: the SSH library used has changed in JGit from Apache MINA sshd 2.4.0 to 2.6.0. sshd 2.6.0 by default does public-key authentication for RSA keys using the rsa-sha2-512 signature algorithm only. Servers that do not understand that mechanism but only the older ssh-rsa signature algorithm will then refuse the log-in.

  • Known affected git servers: bitbucket.org, AWS Code Commit
  • Work-arounds:
    • Use an ed25519 key.
    • Use an external SSH via environment variable GIT_SSH.

根据howlger about Known_problems -> Bug 572056 - Cannot work with Bitbucket after Eclipse update的信息,我做了以下解决方法解决了这个问题。

打开CMD并运行:

ssh-keygen -t ed25519

这创建了一个新密钥:C:/Users/USER/.ssh/id_ed25519

登录到 bitbucket 并添加新的 public 密钥文件 (C:/Users/USER/.ssh/id_ed25519.pub)键:
https://bitbucket.org/account/settings/ssh-keys/

在 eclipse 首选项中配置此键:

然后拉和推再次工作。一点研究表明,ed25519 比默认的 RSA 算法更安全、更快,因此实际上是一个非常好的解决方案。