Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
jsch — fork of the popular jsch library | Kitploit
Ferramentas/GitHubGitHub/mwiede/jsch
Authentication & AuthorizationEncryption/Decryption ToolsNetwork SecurityUtilities & FrameworksRemote Access Tool
GitHubmwiede/jsch

jsch

fork of the popular jsch library

Ver Repositório
1.1k188há 8 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Fork do JSch-0.1.55

Veja o README original

GitHub release Maven Central Java CI with Maven

Por que você deveria usar esta biblioteca?

Como expliquei em um post no blog, os principais pontos são:

  • O OpenSSH desabilitou o ssh-rsa por padrão na versão 8.8 e você precisa de uma biblioteca que suporte rsa-sha2-256 e rsa-sha2-512.
  • Substituto direto: basta alterar as coordenadas da dependência e você está pronto.
  • Sem manutenção ativa do JSch no SourceForge.
  • Mantenha-se em sincronia com os recursos do OpenJDK para que não haja necessidade de dependências adicionais.

Existe alguma documentação?

Pouca. Confira o código de exemplo na pasta examples. E há algumas páginas na wiki, como Jsch-Configuration e Jsch-Logging.

Versionamento

Até 0.2.26, o versionamento seguia o esquema original do jsch; a partir de 2.27.0, mudamos para versionamento semântico, indicando que a API da biblioteca é estável e usada em produção.

Como usar esta biblioteca como substituta de com.jcraft:jsch

Garanta que você tenha apenas uma dependência do jsch em seu classpath. Por exemplo, você pode verificar a saída de mvn dependency:tree.

substituindo uma dependência direta do Maven

substitua

root@kitploit:~
<dependency>
    <groupId>com.jcraft</groupId>
    <artifactId>jsch</artifactId>
    <version>0.1.55</version>
</dependency>

por

root@kitploit:~
<dependency>
  <groupId>com.github.mwiede</groupId>
  <artifactId>jsch</artifactId>
  <version>2.28.0</version>
</dependency>

substituindo o jsch como uma dependência transitiva do Maven

Quando você tem um artefato foo:bar, que contém com.jcraft:jsch como dependência transitiva, você precisa adicionar com.github.mwiede:jsch como outra dependência e excluir a dependência do jcraft:

root@kitploit:~
<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>

Adição: Você também pode excluir qualquer um dos com.jcraft:jsch.agentproxy.jsch, com.jcraft:jsch.agentproxy.core ou com.jcraft:jsch.agentproxy.pageant, porque esses módulos foram integrados neste fork (veja as notas de lançamento da 0.1.66).

FAQ

Qual é a versão mínima do Java necessária?

  • Java 8. Para mais limitações, veja a próxima resposta.

Os algoritmos ssh-ed25519, ssh-ed448, curve25519-sha256, curve448-sha512 e chacha20-poly1305@openssh.com são suportados?

  • Esta biblioteca é um Multi-Release-jar, o que significa que você só pode usar determinados recursos quando uma versão mais recente do Java é utilizada.
    • Para usar ssh-ed25519 e ssh-ed448, você deve usar pelo menos Java 15 ou adicionar Bouncy Castle (bcprov-jdk18on) ao classpath.
    • Para usar curve25519-sha256 e curve448-sha512, você deve usar pelo menos Java 11 ou adicionar Bouncy Castle (bcprov-jdk18on) ao classpath.
    • Para usar chacha20-poly1305@openssh.com, você deve adicionar Bouncy Castle (bcprov-jdk18on) ao classpath.
  • A partir do lançamento 0.1.66, esses algoritmos agora podem ser usados com versões mais antigas do Java se Bouncy Castle (bcprov-jdk18on) for adicionado ao classpath.
    • A partir do lançamento 0.1.72, chacha20-poly1305@openssh.com só pode ser usado se Bouncy Castle (bcprov-jdk18on) for adicionado ao classpath.

Por que chaves do tipo ssh-rsa não funcionam com este fork do JSch e meu servidor?

  • A partir do lançamento 0.2.0, o algoritmo de assinatura RSA/SHA1 está desabilitado por padrão.
    • O SHA1 não é mais considerado seguro pela comunidade criptográfica em geral, e este fork do JSch se esforça para manter escolhas seguras para os algoritmos padrão que utilizará.
    • Isso também segue o exemplo do projeto OpenSSH, que desabilitou as assinaturas RSA/SHA1 por padrão a partir da versão 8.8 do OpenSSH.
  • Chaves do tipo ssh-rsa continuam funcionando por padrão com os algoritmos de assinatura RSA/SHA256 (rsa-sha2-256) e RSA/SHA512 (rsa-sha2-512) definidos pela RFC 8332.
  • Se o seu servidor suporta apenas assinaturas RSA/SHA1 e você precisar usá-las em sua aplicação, será necessário reativá-las manualmente por um dos seguintes meios (veja também a página da wiki Jsch-Configuration):
    • Globalmente, adicionando "ssh-rsa" às propriedades jsch.server_host_key + jsch.client_pubkey.
    • Globalmente, executando algo semelhante a JSch.setConfig("server_host_key", JSch.getConfig("server_host_key") + ",ssh-rsa") + JSch.setConfig("PubkeyAcceptedAlgorithms", JSch.getConfig("PubkeyAcceptedAlgorithms") + ",ssh-rsa").
    • Por sessão, executando algo semelhante a session.setConfig("server_host_key", session.getConfig("server_host_key") + ",ssh-rsa") + session.setConfig("PubkeyAcceptedAlgorithms", session.getConfig("PubkeyAcceptedAlgorithms") + ",ssh-rsa").

Este fork é 100% compatível com o JSch original, porque a conexão com meu servidor não funciona mais!

  • Para compatibilidade com OpenSSH e segurança aprimorada, a ordem dos algoritmos de criptografia foi alterada. Se você ainda quiser usar algoritmos mais antigos ou obsoletos, precisará alterar a configuração. Veja exemplos em #37, #40.
  • Para facilitar o ajuste dos algoritmos de criptografia, a partir do 0.1.65 as seguintes propriedades de sistema podem ser definidas na inicialização da sua aplicação:
    • jsch.kex
      • equivalente a JSch.setConfig("kex", "...")
    • jsch.server_host_key
      • equivalente a JSch.setConfig("server_host_key", "...")
    • jsch.prefer_known_host_key_types
      • equivalente a JSch.setConfig("prefer_known_host_key_types", "...")
    • jsch.enable_server_sig_algs
      • equivalente a JSch.setConfig("enable_server_sig_algs", "...")
    • jsch.cipher

Outros Projetos que Usam JSch

  • Jsync https://github.com/fizzed/jsync - Fornece uma ferramenta de sincronização de arquivos e diretórios simples, eficiente, confiável e em Java puro, semelhante ao rsync, que pode ser usada programaticamente.
  • Blaze https://github.com/fizzed/blaze - Uma forma de executar arquivos Java como scripts, com recursos poderosos de SSH, SFTP e semelhantes ao rsync integrados.

Mudanças desde o fork:

Veja ChangeLog.md

Baixar ferramenta
  • Adicionando "ssh-rsa" ao seu arquivo de configuração do tipo OpenSSH com as palavras-chave "HostKeyAlgorithms" + "PubkeyAcceptedAlgorithms" e utilizando a classe OpenSSHConfig.
    • equivalente a JSch.setConfig("cipher.s2c", "...") + JSch.setConfig("cipher.c2s", "...")
  • jsch.mac
    • equivalente a JSch.setConfig("mac.s2c", "...") + JSch.setConfig("mac.c2s", "...")
  • jsch.compression
    • equivalente a JSch.setConfig("compression.s2c", "...") + JSch.setConfig("compression.c2s", "...")
  • jsch.lang
    • equivalente a JSch.setConfig("lang.s2c", "...") + JSch.setConfig("lang.c2s", "...")
  • jsch.dhgex_min
    • equivalente a JSch.setConfig("dhgex_min", "...")
  • jsch.dhgex_max
    • equivalente a JSch.setConfig("dhgex_max", "...")
  • jsch.dhgex_preferred
    • equivalente a JSch.setConfig("dhgex_preferred", "...")
  • jsch.compression_level
    • equivalente a JSch.setConfig("compression_level", "...")
  • jsch.preferred_authentications
    • equivalente a JSch.setConfig("PreferredAuthentications", "...")
  • jsch.client_pubkey
    • equivalente a JSch.setConfig("PubkeyAcceptedAlgorithms", "...")
  • jsch.check_ciphers
    • equivalente a JSch.setConfig("CheckCiphers", "...")
  • jsch.check_macs
    • equivalente a JSch.setConfig("CheckMacs", "...")
  • jsch.check_kexes
    • equivalente a JSch.setConfig("CheckKexes", "...")
  • jsch.check_signatures
    • equivalente a JSch.setConfig("CheckSignatures", "...")
  • jsch.fingerprint_hash
    • equivalente a JSch.setConfig("FingerprintHash", "...")
  • jsch.max_auth_tries
    • equivalente a JSch.setConfig("MaxAuthTries", "...")