如何在eclipse中添加一个ed25519 ssh key,以便在github中使用?

wgx48brx  于 2023-09-29  发布在  Git
关注(0)|答案(2)|浏览(228)

我使用Git for Windows(v2.30.1)创建了一个ed 25519 ssh密钥,每个ssh-keygen -t ed25519 -C “<github email>”对应this github docadded it to my account。我用ssh -T [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)从Git CMD验证了它可以工作。
将其加载到eclipse(v2020-12; EGit v5.11),我去了这里:Preferences --> SSH2 --> Key Management --> Load Existing Key...
当尝试添加私钥时,我得到了这个错误failed to load given fileEGit v5.4+ "supports" an ed25519 key,但我找不到如何将一个进入eclipse的说明(期望它们在这里)。谷歌搜索错误没有帮助。
如何在eclipse中使用ed 25519密钥?

yzuktlbb

yzuktlbb1#

看起来很奇怪,您不能使用Load Existing Key来加载ssh密钥。我不是唯一一个犯这种错误的人。。感谢Howlger在这里指出相关的文档。添加密钥的正确方法是从“常规”选项卡中单击Add Private Key…并选择ed 25519私钥文件(而不是以“.pub”结尾的文件)。
我对git还是个新手,所以我尽可能多地使用eclipse GUI(又名EGit)。我已经从Git的Angular 克隆了一个公共repo,如下所示:
1.点击Clone a Git Repository and add the clone to this view--> GitHub
1.在搜索框中输入org.aspectj并单击Search
1.选择eclipse/org.aspectj并单击Next
1.选择master分支--> Next -->进入本地目录
1.单击完成
这些步骤很重要,因为EGit默认远程origin的repo URI如下:https://github.com/eclipse/org.aspectj。现在我已经加载了我的ssh密钥,我想改变它。因此,仍然在Git透视图中,在Remotes下,我右键单击origin,单击Configure push,然后单击Change…并单击协议下拉列表,选择sshFinish。回到Configure push for remote ‘origin’窗口,单击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)

故障排除最终让我找到了这个关于“git”用户的github文档。我只需要将origin的URI更新为ssh:// [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection) /eclipse/org.aspectj,然后它就像一个魅力。

rseugnpd

rseugnpd2#

为了进行测试,请尝试使用相同的密钥,但不使用密码。
错误“failed to load given filewas indeed reported用于带密码的密钥(即使是简单的id_rsa密钥)。
Eclipse issue 326526提到:
另一个更简单的解决方法是使用OpenSSH删除(AES)密码,然后要求(旧的)JSch再次设置相同的密码-使用DES 3(DES seen here)。
尽管OpenSSH现在默认使用AES,但它支持DES 3。使用DES 3,可以在所有代理之间共享相同的密码。不需要GIT_SSH变量。测试.
这意味着:
如果需要,可以使用 * 密码短语重新创建密钥 *,但使用旧的PEM格式:

ssh-keygen -m PEM ...

或者你需要use a fork of Jsch

相关问题