1

我有 Eclipse Juno,一个带有 Git 服务器的 Synology Server DS213+。我正在尝试将一个项目从我的 Git 服务器签出到我的工作区,当我在 Eclipse 中使用 EGit 时出现此错误:

org.eclipse.jgit.api.errors.TransportException: ssh://[route]/volume1/Git/project.git: Algorithm negotiation fail
    at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:223)
    at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:159)
    at org.eclipse.egit.core.op.ListRemoteOperation.run(ListRemoteOperation.java:99)
    at org.eclipse.egit.ui.internal.clone.SourceBranchPage$8.run(SourceBranchPage.java:324)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: org.eclipse.jgit.errors.TransportException: ssh://[route]/volume1/Git/project.git: Algorithm negotiation fail
    at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:159)
    at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:136)
    at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:262)
    at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:161)
    at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:202)
    ... 4 more
Caused by: com.jcraft.jsch.JSchException: Algorithm negotiation fail
    at com.jcraft.jsch.Session.receive_kexinit(Session.java:583)
    at com.jcraft.jsch.Session.connect(Session.java:320)
    at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:116)
    ... 8 more

[route] 是正确的,在其他 git 软件中运行良好

4

4 回答 4

2

我找到了这个博客的解决方案:

http://blog.millard.org/2014/11/repair-synology-dsm51-for-use-as-linux.html

使用 WinSCP http://winscp.net/eng/download.php我修改了 sshd_config 并在 Synology 的控制面板中重新启动 ssh。

于 2015-04-22T15:52:41.157 回答
2

当 Eclipse 中的 Egit 不支持任何支持 ssh 服务器的芯片时,它似乎会抛出此错误。就我而言,SSH 服务器被设置为只接受少数强大的芯片。我在服务器的 ssh 日志中注意到类似于以下的错误:

fatal: Unable to negotiate with xx.xx.xx.xx port 12345: no matching cipher found. Their offer: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc

客户端出错的原因是默认的 Java 安装不支持任何强大的芯片。由于我们已经使用 webupd8 团队 ppa 来安装我们的 Java 包,因此解决方案是简单地安装unlimited-jce-policy包。

apt install oracle-java8-unlimited-jce-policy

重新启动 Eclipse,一切就绪。

于 2017-11-17T23:50:47.610 回答
0

设法使用 egit 5.2 版 https://archive.eclipse.org/egit/updates-5.2/处理它

于 2021-05-03T10:15:01.637 回答
0

Eclipse 需要diffie-hellman-group1-sha1

修改 /etc/ssh/sshd_config 并将其添加到密码中,如:

Ciphers 3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
macs umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
kexalgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
于 2019-12-26T08:37:40.133 回答