Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
jsch — fourche de la bibliothèque populaire jsch | Kitploit
Outils/GitHubGitHub/mwiede/jsch
Authentification et AutorisationOutils de Chiffrement/DéchiffrementSécurité RéseauUtilitaires et FrameworksOutil d'Accès à Distance
GitHubmwiede/jsch

jsch

fourche de la bibliothèque populaire jsch

Voir le dépôt
1.1k18870il y a 2 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
# Fork de JSch-0.1.55

Voir le [README](https://github.com/mwiede/jsch/blob/master/README) original

[![GitHub release](https://img.shields.io/github/v/tag/mwiede/jsch.svg)](https://github.com/mwiede/jsch/releases/latest)
[![Maven Central](https://maven-badges.sml.io/sonatype-central/com.github.mwiede/jsch/badge.svg)](https://maven-badges.sml.io/sonatype-central/com.github.mwiede/jsch)
![Java CI with Maven](https://github.com/mwiede/jsch/workflows/Java%20CI%20with%20Maven/badge.svg)

## Pourquoi devriez-vous utiliser cette bibliothèque ?

Comme je l'ai expliqué dans un [article de blog](http://www.matez.de/index.php/2020/06/22/the-future-of-jsch-without-ssh-rsa/), les principaux points sont :
* OpenSSH a désactivé ssh-rsa par défaut dans [la version 8.8](https://www.openssh.com/txt/release-8.8) et vous avez besoin d'une bibliothèque qui prend en charge rsa-sha2-256 et rsa-sha2-512.
* Remplacement direct : il suffit de changer les coordonnées de la dépendance et vous êtes prêt.
* Plus de maintenance active de [JSch sur SourceForge](https://sourceforge.net/projects/jsch/).
* Rester en phase avec les fonctionnalités d'OpenJDK afin qu'aucune dépendance supplémentaire ne soit nécessaire.

## Y a-t-il une documentation ?

Pas beaucoup. Consultez le code d'exemple dans le dossier [examples](https://github.com/mwiede/jsch/tree/master/examples). Et il existe quelques pages wiki, par exemple [Jsch-Configuration](https://github.com/mwiede/jsch/wiki/Jsch-Configuration) et [Jsch-Logging](https://github.com/mwiede/jsch/wiki/Jsch-Logging).

## Gestion des versions

Jusqu'à `0.2.26`, la gestion des versions suivait le schéma du jsch d'origine ; à partir de `2.27.0`, nous sommes passés au [versionnement sémantique](https://semver.org), indiquant que l'API de la bibliothèque est stable et utilisée en production.

## Comment utiliser cette bibliothèque en remplacement de `com.jcraft:jsch`

Assurez-vous de n'avoir qu'une seule dépendance jsch sur votre classpath. Par exemple, vous pouvez vérifier la sortie de `mvn dependency:tree`.

### en remplaçant une dépendance Maven directe

remplacez
```xml
<dependency>
    <groupId>com.jcraft</groupId>
    <artifactId>jsch</artifactId>
    <version>0.1.55</version>
</dependency>
```
par
```xml
<dependency>
  <groupId>com.github.mwiede</groupId>
  <artifactId>jsch</artifactId>
  <version>2.28.0</version>
</dependency>
```

### en remplaçant jsch comme dépendance Maven transitive
Lorsque vous avez un artefact `foo:bar`, qui contient `com.jcraft:jsch` comme dépendance transitive, vous devez ajouter `com.github.mwiede:jsch` comme autre dépendance et exclure celle de jcraft :
```xml
<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>
```

*Ajout* : Vous pouvez également exclure `com.jcraft:jsch.agentproxy.jsch`, `com.jcraft:jsch.agentproxy.core` ou `com.jcraft:jsch.agentproxy.pageant`, car ces modules ont été intégrés dans ce fork (voir les notes de version de [0.1.66](https://github.com/mwiede/jsch/releases/tag/jsch-0.1.66)).

## FAQ
### Quelle est la version minimale de Java requise ?
  * Java 8. Pour plus de limitations, voir la réponse suivante.
### Est-ce que ssh-ed25519, ssh-ed448, curve25519-sha256, curve448-sha512 et chacha20-poly1305@<!-- -->openssh.com sont pris en charge ?
  * Cette bibliothèque est un [Multi-Release-jar](https://openjdk.org/jeps/238), ce qui signifie que vous ne pouvez utiliser certaines fonctionnalités que lorsqu'une version plus récente de Java est utilisée.
    * Pour utiliser ssh-ed25519 et ssh-ed448, vous devez utiliser au moins Java 15 ou ajouter [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) au classpath.
    * Pour utiliser curve25519-sha256 et curve448-sha512, vous devez utiliser au moins Java 11 ou ajouter [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) au classpath.
    * Pour utiliser chacha20-poly1305@<!-- -->openssh.com, vous devez ajouter [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) au classpath.
  * Depuis la version [0.1.66](https://github.com/mwiede/jsch/releases/tag/jsch-0.1.66), ces algorithmes peuvent désormais être utilisés avec d'anciennes versions de Java si [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) est ajouté au classpath.
    * Depuis la version [0.1.72](https://github.com/mwiede/jsch/releases/tag/jsch-0.1.72), chacha20-poly1305@<!-- -->openssh.com ne peut être utilisé que si [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) est ajouté au classpath.
### Pourquoi les clés de type ssh-rsa ne fonctionnent-elles pas avec ce fork de JSch et mon serveur ?
  * Depuis la version [0.2.0](https://github.com/mwiede/jsch/releases/tag/jsch-0.2.0), l'algorithme de signature RSA/SHA1 est désactivé par défaut.
    * SHA1 n'est plus considéré comme sûr par la communauté cryptographique en général, et ce fork de JSch s'efforce de maintenir des choix sûrs pour les algorithmes par défaut qu'il utilisera.
    * Cela suit également l'exemple du projet OpenSSH, qui a désactivé les signatures RSA/SHA1 par défaut à partir de [la version 8.8 d'OpenSSH](https://www.openssh.com/txt/release-8.8).
  * Les clés de type ssh-rsa continuent de fonctionner par défaut avec les algorithmes de signature RSA/SHA256 (rsa-sha2-256) et RSA/SHA512 (rsa-sha2-512) définis par le [RFC 8332](https://datatracker.ietf.org/doc/html/rfc8332).
  * Si votre serveur ne prend en charge que les signatures RSA/SHA1 et que vous avez besoin de les utiliser dans votre application, vous devrez les réactiver manuellement par l'un des moyens suivants (voir aussi la page wiki [Jsch-Configuration](https://github.com/mwiede/jsch/wiki/Jsch-Configuration)) :
    * Globalement, en ajoutant "ssh-rsa" aux propriétés `jsch.server_host_key` + `jsch.client_pubkey`.
    * Globalement, en exécutant quelque chose comme `JSch.setConfig("server_host_key", JSch.getConfig("server_host_key") + ",ssh-rsa")` + `JSch.setConfig("PubkeyAcceptedAlgorithms", JSch.getConfig("PubkeyAcceptedAlgorithms") + ",ssh-rsa")`.
    * Par session, en exécutant quelque chose comme `session.setConfig("server_host_key", session.getConfig("server_host_key") + ",ssh-rsa")` + `session.setConfig("PubkeyAcceptedAlgorithms", session.getConfig("PubkeyAcceptedAlgorithms") + ",ssh-rsa")`.
    * En ajoutant "ssh-rsa" à votre fichier de configuration de type OpenSSH avec les mots-clés "HostKeyAlgorithms" + "PubkeyAcceptedAlgorithms", puis en utilisant la classe `OpenSSHConfig`.
### Ce fork est-il compatible à 100 % avec le JSch d'origine, car la connexion à mon serveur ne fonctionne plus !
  * Pour la compatibilité avec OpenSSH et une sécurité améliorée, l'ordre des algorithmes cryptographiques a été modifié. Si vous souhaitez toujours utiliser des algorithmes plus anciens ou obsolètes, vous devez modifier la configuration. Voir les exemples [#37](https://github.com/mwiede/jsch/issues/37), [#40](https://github.com/mwiede/jsch/issues/40)
  * Pour faciliter l'ajustement des algorithmes cryptographiques, à partir de [0.1.65](https://github.com/mwiede/jsch/releases/tag/jsch-0.1.65), les propriétés système suivantes peuvent être définies au démarrage de votre application :
    * `jsch.kex`
      * analogue à `JSch.setConfig("kex", "...")`
    * `jsch.server_host_key`
      * analogue à `JSch.setConfig("server_host_key", "...")`
    * `jsch.prefer_known_host_key_types`
      * analogue à `JSch.setConfig("prefer_known_host_key_types", "...")`
    * `jsch.enable_server_sig_algs`
      * analogue à `JSch.setConfig("enable_server_sig_algs", "...")`
    * `jsch.cipher`
      * analogue à `JSch.setConfig("cipher.s2c", "...")` + `JSch.setConfig("cipher.c2s", "...")`
    * `jsch.mac`
      * analogue à `JSch.setConfig("mac.s2c", "...")` + `JSch.setConfig("mac.c2s", "...")`
    * `jsch.compression`
      * analogue à `JSch.setConfig("compression.s2c", "...")` + `JSch.setConfig("compression.c2s", "...")`
    * `jsch.lang`
      * analogue à `JSch.setConfig("lang.s2c", "...")` + `JSch.setConfig("lang.c2s", "...")`
    * `jsch.dhgex_min`
      * analogue à `JSch.setConfig("dhgex_min", "...")`
    * `jsch.dhgex_max`
      * analogue à `JSch.setConfig("dhgex_max", "...")`
    * `jsch.dhgex_preferred`
      * analogue à `JSch.setConfig("dhgex_preferred", "...")`
    * `jsch.compression_level`
      * analogue à `JSch.setConfig("compression_level", "...")`
    * `jsch.preferred_authentications`
      * analogue à `JSch.setConfig("PreferredAuthentications", "...")`
    * `jsch.client_pubkey`
      * analogue à `JSch.setConfig("PubkeyAcceptedAlgorithms", "...")`
    * `jsch.check_ciphers`
      * analogue à `JSch.setConfig("CheckCiphers", "...")`
    * `jsch.check_macs`
      * analogue à `JSch.setConfig("CheckMacs", "...")`
    * `jsch.check_kexes`
      * analogue à `JSch.setConfig("CheckKexes", "...")`
    * `jsch.check_signatures`
      * analogue à `JSch.setConfig("CheckSignatures", "...")`
    * `jsch.fingerprint_hash`
      * analogue à `JSch.setConfig("FingerprintHash", "...")`
    * `jsch.max_auth_tries`
      * analogue à `JSch.setConfig("MaxAuthTries", "...")`

## Autres projets utilisant JSch

* Jsync https://github.com/fizzed/jsync - Fournit un outil de synchronisation de fichiers et
  de répertoires simple, efficace, fiable et 100 % Java, de type rsync, qui peut être utilisé par programmation.
* Blaze https://github.com/fizzed/blaze - Un moyen d'exécuter des fichiers Java comme des scripts, avec de puissantes fonctionnalités SSH, SFTP et de type rsync
  intégrées directement.

## Changements depuis le fork :
Voir [ChangeLog.md](https://github.com/mwiede/jsch/blob/master/ChangeLog.md)
Télécharger l’outil