如何将 ed25519 ssh 密钥添加到 eclipse 以供 github 使用?

How to add an ed25519 ssh key to eclipse for use with github?

我使用 Git for Windows (v2.30.1) 创建了一个 ed25519 ssh 密钥 ssh-keygen -t ed25519 -C “<github email>”this github doc and added it to my account。我用 ssh -T git@github.com.

从 Git CMD 验证了它的工作原理

为了将其加载到 eclipse (v2020-12; EGit v5.11),我去了这里:Preferences --> SSH2 --> Key Management --> Load Existing Key...

对于私钥和 public 密钥,我都遇到了这个错误 failed to load given fileEGit v5.4+ "supports" an ed25519 key, but I could find no instructions (expected them here) 如何让一个人进入 eclipse。谷歌搜索错误没有帮助。

如何在 eclipse 中使用我的 ed25519 密钥?

为了测试,请尝试使用相同的密钥,但不要输入密码。

密钥错误“failed to load given filewas indeed reported(即使是简单的 id_rsa 密钥)和密码。

Eclipse issue 326526 提及:

Another, much simpler workaround is to remove the (AES) passphrase using OpenSSH and then ask the (old) JSch to set the same passphrase again - using DES3 ().

Even though OpenSSH's is now using AES by default it supports DES3 fine. Using DES3 the same passphrase can be shared across all agents. No GIT_SSH variable required. Tested.

这意味着:

如果需要,请使用 密码短语重新创建您的密钥 ,但使用旧的 PEM 格式:

ssh-keygen -m PEM ...

否则您需要

您不能使用 Load Existing Key 加载 ssh 密钥似乎很奇怪。我不是唯一犯这个错误的人...感谢 Howlger 指出 the relevant doc here。添加密钥的正确方法是从“常规”选项卡单击 Add Private Key… 并选择您的 ed25519 私钥文件(不是以“.pub”结尾的文件)。

我是 git 的新手,所以我尽可能多地在 eclipse GUI(又名 EGit)中完成这些工作。我已经从 Git 的角度克隆了一个 public 仓库,如下所示:

  1. 点击了 Clone a Git Repository and add the clone to this view --> GitHub
  2. 在搜索框中键入 org.aspectj 并单击 Search
  3. 选择 eclipse/org.aspectj 并单击下一步
  4. 选择master分支-->下一步-->进入本地目录
  5. 点击完成

这些步骤很重要,因为 EGit 为远程 origin 默认了 repo URI,如下所示:https://github.com/eclipse/org.aspectj。现在我已经加载了我的 ssh 密钥,我想改变它。因此,仍然在 Git 视角下,在 Remotes 下,我右键单击 origin,单击 Configure push,然后单击 Change…,然后单击协议下拉菜单,选择 sshFinish。回到 Configure push for remote ‘origin’ window,我点击了 Save and Push 并得到了这个错误:

Can't connect to any repository: ssh://github.com/eclipse/org.aspectj (ssh://github.com/eclipse/org.aspectj: Cannot log in at github.com:22)

故障排除最终让我找到 this github documentation about the “git” user。我只需要将 origin 的 URI 更新为 ssh://git@github.com/eclipse/org.aspectj 然后它就像一个魅力。