Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
jsch — fork del popolare libreria jsch | Kitploit
Strumenti/GitHubGitHub/mwiede/jsch
Autenticazione e AutorizzazioneStrumenti di Crittografia/DecrittografiaSicurezza di ReteUtilità e FrameworkStrumento di Accesso Remoto
GitHubmwiede/jsch

jsch

fork del popolare libreria jsch

Vedi Repository
1.1k188702 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
# Fork di JSch-0.1.55

Vedi il [README](https://github.com/mwiede/jsch/blob/master/README) originale

[![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)

## Perché dovresti usare questa libreria?

Come ho spiegato in un [post del blog](http://www.matez.de/index.php/2020/06/22/the-future-of-jsch-without-ssh-rsa/), i punti principali sono:
* OpenSSH ha disabilitato ssh-rsa per impostazione predefinita nella [release 8.8](https://www.openssh.com/txt/release-8.8) e hai bisogno di una libreria che supporti rsa-sha2-256 e rsa-sha2-512.
* Drop-in replacement: basta cambiare le coordinate della dipendenza e sei a posto.
* Nessuna manutenzione attiva di [JSch su SourceForge](https://sourceforge.net/projects/jsch/).
* Resta in sincronia con le funzionalità di OpenJDK, così non c'è bisogno di dipendenze aggiuntive.

## C'è qualche documentazione?

Non molta. Controlla il codice di esempio nella cartella [examples](https://github.com/mwiede/jsch/tree/master/examples). E ci sono alcune pagine wiki, cioè [Jsch-Configuration](https://github.com/mwiede/jsch/wiki/Jsch-Configuration) e [Jsch-Logging](https://github.com/mwiede/jsch/wiki/Jsch-Logging).

## Versionamento

Fino alla `0.2.26` il versionamento seguiva lo schema jsch originale; dalla `2.27.0` in poi siamo passati al [semantic versioning](https://semver.org), per esprimere che l'API della libreria è stabile e usata in produzione.

## Come usare questa libreria come sostituto di `com.jcraft:jsch`

Assicurati di avere una sola dipendenza jsch nel tuo classpath. Ad esempio, puoi controllare l'output di `mvn dependency:tree`.

### sostituendo una dipendenza maven diretta

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

### sostituendo jsch come dipendenza maven transitiva
Quando hai un artefatto `foo:bar`, che contiene `com.jcraft:jsch` come dipendenza transitiva, devi aggiungere `com.github.mwiede:jsch` come ulteriore dipendenza ed escludere quella 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>
```

*Aggiunta*: puoi inoltre escludere uno qualsiasi tra `com.jcraft:jsch.agentproxy.jsch`, `com.jcraft:jsch.agentproxy.core` o `com.jcraft:jsch.agentproxy.pageant`, perché questi moduli sono stati integrati in questo fork (vedi le note di rilascio della [0.1.66](https://github.com/mwiede/jsch/releases/tag/jsch-0.1.66)).

## FAQ
### Qual è la versione minima di Java richiesta?
  * Java 8. Per ulteriori limitazioni, vedi la risposta successiva.
### Sono supportati ssh-ed25519, ssh-ed448, curve25519-sha256, curve448-sha512 e chacha20-poly1305@<!-- -->openssh.com?
  * Questa libreria è un [Multi-Release-jar](https://openjdk.org/jeps/238), il che significa che puoi usare alcune funzionalità solo quando viene utilizzata una versione di Java più recente.
    * Per usare ssh-ed25519 e ssh-ed448, devi utilizzare almeno Java 15 oppure aggiungere [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) al classpath.
    * Per usare curve25519-sha256 e curve448-sha512, devi utilizzare almeno Java 11 oppure aggiungere [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) al classpath.
    * Per usare chacha20-poly1305@<!-- -->openssh.com, devi aggiungere [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) al classpath.
  * A partire dalla release [0.1.66](https://github.com/mwiede/jsch/releases/tag/jsch-0.1.66), questi algoritmi possono ora essere usati con versioni di Java meno recenti se [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) viene aggiunto al classpath.
    * A partire dalla release [0.1.72](https://github.com/mwiede/jsch/releases/tag/jsch-0.1.72), chacha20-poly1305@<!-- -->openssh.com può essere usato solo se [Bouncy Castle](https://www.bouncycastle.org/java.html) (bcprov-jdk18on) viene aggiunto al classpath.
### Perché le chiavi di tipo ssh-rsa non funzionano con questo fork di JSch e con il mio server?
  * A partire dalla release [0.2.0](https://github.com/mwiede/jsch/releases/tag/jsch-0.2.0), l'algoritmo di firma RSA/SHA1 è disabilitato per impostazione predefinita.
    * SHA1 non è più considerato sicuro dalla comunità crittografica generale e questo fork di JSch si impegna a mantenere scelte sicure per gli algoritmi predefiniti che utilizzerà.
    * Questo segue anche l'esempio del progetto OpenSSH, che ha disabilitato le firme RSA/SHA1 per impostazione predefinita a partire dalla [release 8.8 di OpenSSH](https://www.openssh.com/txt/release-8.8).
  * Le chiavi di tipo ssh-rsa continuano a funzionare per impostazione predefinita con gli algoritmi di firma RSA/SHA256 (rsa-sha2-256) e RSA/SHA512 (rsa-sha2-512) definiti dalla [RFC 8332](https://datatracker.ietf.org/doc/html/rfc8332).
  * Se il tuo server supporta solo firme RSA/SHA1 e ne richiedi l'uso nella tua applicazione, dovrai riabilitarle manualmente in uno dei seguenti modi (vedi anche la pagina wiki [Jsch-Configuration](https://github.com/mwiede/jsch/wiki/Jsch-Configuration)):
    * Globalmente aggiungendo "ssh-rsa" alle proprietà `jsch.server_host_key` + `jsch.client_pubkey`.
    * Globalmente eseguendo qualcosa di simile a `JSch.setConfig("server_host_key", JSch.getConfig("server_host_key") + ",ssh-rsa")` + `JSch.setConfig("PubkeyAcceptedAlgorithms", JSch.getConfig("PubkeyAcceptedAlgorithms") + ",ssh-rsa")`.
    * Su base per-sessione eseguendo qualcosa di simile a `session.setConfig("server_host_key", session.getConfig("server_host_key") + ",ssh-rsa")` + `session.setConfig("PubkeyAcceptedAlgorithms", session.getConfig("PubkeyAcceptedAlgorithms") + ",ssh-rsa")`.
    * Aggiungendo "ssh-rsa" al tuo file di configurazione di tipo OpenSSH con le parole chiave "HostKeyAlgorithms" + "PubkeyAcceptedAlgorithms" e quindi utilizzando la classe `OpenSSHConfig`.
### Questo fork è compatibile al 100% con il JSch originale, perché la connessione al mio server non funziona più!
  * Per compatibilità con OpenSSH e una sicurezza migliorata, l'ordine degli algoritmi crittografici è stato modificato. Se vuoi ancora usare algoritmi più vecchi o deprecati, devi modificare la configurazione. Esempi: vedi [#37](https://github.com/mwiede/jsch/issues/37), [#40](https://github.com/mwiede/jsch/issues/40)
  * Per rendere più semplice la regolazione degli algoritmi crittografici, a partire dalla [0.1.65](https://github.com/mwiede/jsch/releases/tag/jsch-0.1.65) è possibile impostare le seguenti proprietà di sistema all'avvio della tua applicazione:
    * `jsch.kex`
      * analoga a `JSch.setConfig("kex", "...")`
    * `jsch.server_host_key`
      * analoga a `JSch.setConfig("server_host_key", "...")`
    * `jsch.prefer_known_host_key_types`
      * analoga a `JSch.setConfig("prefer_known_host_key_types", "...")`
    * `jsch.enable_server_sig_algs`
      * analoga a `JSch.setConfig("enable_server_sig_algs", "...")`
    * `jsch.cipher`
      * analoga a `JSch.setConfig("cipher.s2c", "...")` + `JSch.setConfig("cipher.c2s", "...")`
    * `jsch.mac`
      * analoga a `JSch.setConfig("mac.s2c", "...")` + `JSch.setConfig("mac.c2s", "...")`
    * `jsch.compression`
      * analoga a `JSch.setConfig("compression.s2c", "...")` + `JSch.setConfig("compression.c2s", "...")`
    * `jsch.lang`
      * analoga a `JSch.setConfig("lang.s2c", "...")` + `JSch.setConfig("lang.c2s", "...")`
    * `jsch.dhgex_min`
      * analoga a `JSch.setConfig("dhgex_min", "...")`
    * `jsch.dhgex_max`
      * analoga a `JSch.setConfig("dhgex_max", "...")`
    * `jsch.dhgex_preferred`
      * analoga a `JSch.setConfig("dhgex_preferred", "...")`
    * `jsch.compression_level`
      * analoga a `JSch.setConfig("compression_level", "...")`
    * `jsch.preferred_authentications`
      * analoga a `JSch.setConfig("PreferredAuthentications", "...")`
    * `jsch.client_pubkey`
      * analoga a `JSch.setConfig("PubkeyAcceptedAlgorithms", "...")`
    * `jsch.check_ciphers`
      * analoga a `JSch.setConfig("CheckCiphers", "...")`
    * `jsch.check_macs`
      * analoga a `JSch.setConfig("CheckMacs", "...")`
    * `jsch.check_kexes`
      * analoga a `JSch.setConfig("CheckKexes", "...")`
    * `jsch.check_signatures`
      * analoga a `JSch.setConfig("CheckSignatures", "...")`
    * `jsch.fingerprint_hash`
      * analoga a `JSch.setConfig("FingerprintHash", "...")`
    * `jsch.max_auth_tries`
      * analoga a `JSch.setConfig("MaxAuthTries", "...")`

## Altri progetti che usano JSch

* Jsync https://github.com/fizzed/jsync - Fornisce uno strumento semplice, efficiente, affidabile e in puro Java per la sincronizzazione di file e
  directory, simile a rsync, utilizzabile a livello di programmazione.
* Blaze https://github.com/fizzed/blaze - Un modo per eseguire file Java come script, con potenti funzionalità SSH, SFTP e simili a rsync
  integrate direttamente.

## Modifiche dal fork:
Vedi [ChangeLog.md](https://github.com/mwiede/jsch/blob/master/ChangeLog.md)
Scarica lo strumento