
jsch jsch-2.28.7
fork de la popular biblioteca jsch
Fork de JSch-0.1.55
Ver el README original
¿Por qué deberías usar esta librería?
Como expliqué en un artículo de blog, los puntos principales son:
- OpenSSH ha deshabilitado ssh-rsa en la versión 8.8 por defecto y necesitas una librería que admita rsa-sha2-256 y rsa-sha2-512.
- Reemplazo directo: solo cambia las coordenadas de dependencia y ya estás listo.
- No hay mantenimiento activo de JSch en SourceForge.
- Se mantiene al día con las características de OpenJDK, por lo que no se necesitan dependencias adicionales.
¿Hay documentación?
No mucha. Revisa el código de ejemplo en la carpeta examples. Y hay algunas páginas wiki, es decir, Jsch-Configuration y Jsch-Logging.
Versionado
Hasta 0.2.26, el versionado seguía el esquema original de jsch; a partir de 2.27.0, cambiamos al versionado semántico, lo que expresa que la API de la librería es estable y se usa en producción.
Cómo usar esta librería como reemplazo de com.jcraft:jsch
Asegúrate de tener solo una dependencia de jsch en tu classpath. Por ejemplo, puedes comprobar la salida de mvn dependency:tree.
reemplazando una dependencia directa de Maven
reemplaza
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
con
<dependency>
<groupId>com.github.mwiede</groupId>
<artifactId>jsch</artifactId>
<version>2.28.0</version>
</dependency>
reemplazando jsch como dependencia transitiva de Maven
Cuando tienes un artefacto foo:bar, que contiene com.jcraft:jsch como dependencia transitiva, necesitas añadir com.github.mwiede:jsch como otra dependencia y excluir la de jcraft:
<dependency>
<groupId>com.github.mwiede</groupId>
<artifactId>jsch</artifactId>
<version>2.28.0</version>
</dependency>
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<exclusions>
<exclusion>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
</exclusion>
</exclusions>
</dependency>
Adición: También puedes excluir cualquiera de com.jcraft:jsch.agentproxy.jsch, com.jcraft:jsch.agentproxy.core o com.jcraft:jsch.agentproxy.pageant, porque estos módulos se integraron en este fork (consulta las notas de la versión 0.1.66).