Error de "error de negociación de algorithm" en Eclipse cuando intenta conectarse por SSH a un server Git personal

Tengo Eclipse Juno, un server Synology DS213 + con un server Git. Estoy intentando verificar un proyecto desde mi server Git a mi espacio de trabajo y cuando uso EGit en Eclipse tengo este error:

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 

[ruta] es correcta y funciona bien en otros softwares git

Encontré este blog con la solución:

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

Utilizando WinSCP http://winscp.net/eng/download.php Modifiqué sshd_config y reinicié ssh en el Panel de control de Synology.

Egit en Eclipse parece arrojar este error cuando no admite ninguno de los chipers compatibles con el server ssh. En mi caso, el server SSH estaba configurado para aceptar solo un puñado de chipers fuertes. Noté errores similares a los siguientes en los loggings ssh del server:

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

La razón del error en el cliente se debía a que la installation Java pnetworkingeterminada no era compatible con ninguno de los chipers más potentes. Como ya estábamos usando el equipo webupd8 ppa para instalar nuestros packages Java, la solución fue simplemente instalar el package unlimited-jce-policy .

 apt install oracle-java8-unlimited-jce-policy 

Reinicie Eclipse y ya está todo listo.