我使用Git for Windows(v2.30.1)创建了一个ed 25519 ssh密钥,每个ssh-keygen -t ed25519 -C “<github email>”
对应this github doc和added 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 file
。EGit v5.4+ "supports" an ed25519 key,但我找不到如何将一个进入eclipse的说明(期望它们在这里)。谷歌搜索错误没有帮助。
如何在eclipse中使用ed 25519密钥?
2条答案
按热度按时间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…
并单击协议下拉列表,选择ssh
和Finish
。回到Configure push for remote ‘origin’
窗口,单击Save and Push
,得到以下错误:故障排除最终让我找到了这个关于“git”用户的github文档。我只需要将origin的URI更新为
ssh:// [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection) /eclipse/org.aspectj
,然后它就像一个魅力。rseugnpd2#
为了进行测试,请尝试使用相同的密钥,但不使用密码。
错误“
failed to load given file
“was indeed reported用于带密码的密钥(即使是简单的id_rsa
密钥)。Eclipse issue 326526提到:
另一个更简单的解决方法是使用OpenSSH删除(AES)密码,然后要求(旧的)JSch再次设置相同的密码-使用DES 3(DES seen here)。
尽管OpenSSH现在默认使用AES,但它支持DES 3。使用DES 3,可以在所有代理之间共享相同的密码。不需要GIT_SSH变量。测试.
这意味着:
如果需要,可以使用 * 密码短语重新创建密钥 *,但使用旧的PEM格式:
或者你需要use a fork of Jsch。