Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
jsch — fork of the popular jsch library | Kitploit
ツール/GitHubGitHub/mwiede/jsch
Authentication & AuthorizationEncryption/Decryption ToolsNetwork SecurityUtilities & FrameworksRemote Access Tool
GitHubmwiede/jsch

jsch

fork of the popular jsch library

リポジトリを見る
1.1k1888日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

JSch-0.1.55 のフォーク

元の README を参照

GitHub release Maven Central Java CI with Maven

このライブラリを使うべき理由は?

ブログ記事で説明したように、主なポイントは次の通りです:

  • OpenSSH は リリース 8.8 でデフォルトで ssh-rsa を無効化しており、rsa-sha2-256 と rsa-sha2-512 をサポートするライブラリが必要です。
  • ドロップイン置換: 依存関係の座標を変更するだけで、すぐに使えます。
  • SourceForge の JSch は活発にメンテナンスされていません。
  • OpenJDK の機能と同期を維持しているため、追加の依存関係は必要ありません。

ドキュメントはありますか?

あまりありません。examples フォルダのサンプルコードを確認してください。また、いくつかの Wiki ページ、すなわち Jsch-Configuration と Jsch-Logging があります。

バージョン管理

0.2.26 までは元の jsch の方式に従っていましたが、2.27.0 以降は セマンティックバージョニング に切り替え、ライブラリ API が安定しており本番環境で使用されていることを示しています。

com.jcraft:jsch の置き換えとしてこのライブラリを使う方法

クラスパス上に jsch の依存関係が 1 つだけあることを確認してください。たとえば、mvn dependency:tree の出力を確認できます。

直接の Maven 依存関係を置き換える場合

以下を置き換えます:

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

以下に置き換えます:

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

推移的な Maven 依存関係としての jsch を置き換える場合

com.jcraft:jsch を推移的依存関係として含むアーティファクト foo:bar がある場合、com.github.mwiede:jsch を別の依存関係として追加し、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>

補足: com.jcraft:jsch.agentproxy.jsch、com.jcraft:jsch.agentproxy.core、com.jcraft:jsch.agentproxy.pageant はこのフォークに統合されたため、さらに除外することができます (0.1.66 のリリースノートを参照)。

FAQ

必要な最低 Java バージョンは?

  • Java 8。その他の制限については、次の回答を参照してください。

ssh-ed25519、ssh-ed448、curve25519-sha256、curve448-sha512 および chacha20-poly1305@openssh.com はサポートされていますか?

  • このライブラリは Multi-Release-jar です。つまり、より新しい Java バージョンを使用した場合にのみ特定の機能を使用できます。
    • ssh-ed25519 と ssh-ed448 を使用するには、Java 15 以降を使用するか、Bouncy Castle (bcprov-jdk18on) をクラスパスに追加する必要があります。
    • curve25519-sha256 と curve448-sha512 を使用するには、Java 11 以降を使用するか、Bouncy Castle (bcprov-jdk18on) をクラスパスに追加する必要があります。
    • chacha20-poly1305@openssh.com を使用するには、Bouncy Castle (bcprov-jdk18on) をクラスパスに追加する必要があります。
  • 0.1.66 リリース以降、Bouncy Castle (bcprov-jdk18on) をクラスパスに追加すれば、これらのアルゴリズムを古い Java リリースでも使用できます。
    • 0.1.72 リリース以降、chacha20-poly1305@openssh.com は Bouncy Castle (bcprov-jdk18on) をクラスパスに追加した場合にのみ使用できます。

この JSch フォークと自分のサーバーで ssh-rsa タイプの鍵が機能しないのはなぜですか?

  • 0.2.0 リリース以降、RSA/SHA1 署名アルゴリズムはデフォルトで無効になっています。
    • SHA1 は一般の暗号コミュニティではもはや安全とは見なされておらず、この JSch フォークは使用するデフォルトアルゴリズムについて安全な選択を維持するよう努めています。
    • これは、OpenSSH リリース 8.8 以降デフォルトで RSA/SHA1 署名を無効にした OpenSSH プロジェクトの動きにも沿ったものです。
  • ssh-rsa タイプの鍵は、RFC 8332 で定義されている RSA/SHA256 (rsa-sha2-256) および RSA/SHA512 (rsa-sha2-512) 署名アルゴリズムでデフォルトのまま機能し続けます。
  • サーバーが RSA/SHA1 署名のみをサポートしており、アプリケーションでそれらを使用する必要がある場合は、次のいずれかの方法で手動で再び有効にする必要があります (Jsch-Configuration の Wiki ページも参照):
    • jsch.server_host_key + jsch.client_pubkey プロパティに "ssh-rsa" を追加してグローバルに設定します。
    • グローバルに設定するには、JSch.setConfig("server_host_key", JSch.getConfig("server_host_key") + ",ssh-rsa") + JSch.setConfig("PubkeyAcceptedAlgorithms", JSch.getConfig("PubkeyAcceptedAlgorithms") + ",ssh-rsa") に類似したコードを実行します。
    • セッションごとに設定するには、session.setConfig("server_host_key", session.getConfig("server_host_key") + ",ssh-rsa") + session.setConfig("PubkeyAcceptedAlgorithms", session.getConfig("PubkeyAcceptedAlgorithms") + ",ssh-rsa") に類似したコードを実行します。
    • OpenSSH 形式の設定ファイルに、"HostKeyAlgorithms" + "PubkeyAcceptedAlgorithms" キーワードで "ssh-rsa" を追加し、 クラスを利用します。

このフォークは元の JSch と 100% 互換ですか? サーバーへの接続が機能しなくなったのですが!

  • OpenSSH との互換性とセキュリティ向上のため、暗号アルゴリズムの順序が変更されました。古いアルゴリズムや非推奨のアルゴリズムを引き続き使用したい場合は、設定を変更する必要があります。例としては #37、#40 を参照してください。
  • 暗号アルゴリズムを調整しやすくするために、0.1.65 以降、アプリケーションの起動時に次のシステムプロパティを設定できます:
    • jsch.kex
      • JSch.setConfig("kex", "...") に相当
    • jsch.server_host_key
      • JSch.setConfig("server_host_key", "...") に相当
    • jsch.prefer_known_host_key_types
      • JSch.setConfig("prefer_known_host_key_types", "...") に相当
    • jsch.enable_server_sig_algs
      • JSch.setConfig("enable_server_sig_algs", "...") に相当
    • jsch.cipher
      • JSch.setConfig("cipher.s2c", "...") + に相当

JSch を使用している他のプロジェクト

  • Jsync https://github.com/fizzed/jsync - シンプルで効率的で信頼性の高い、純粋な Java 製の rsync ライクなファイルおよび プログラムから使用できるディレクトリ同期ツールを提供します。
  • Blaze https://github.com/fizzed/blaze - 強力な SSH、SFTP、rsync ライクな 機能が組み込まれた、Java ファイルをスクリプトとして実行する方法。

フォーク以降の変更:

ChangeLog.md を参照

ツールをダウンロード
OpenSSHConfig
JSch.setConfig("cipher.c2s", "...")
  • jsch.mac
    • JSch.setConfig("mac.s2c", "...") + JSch.setConfig("mac.c2s", "...") に相当
  • jsch.compression
    • JSch.setConfig("compression.s2c", "...") + JSch.setConfig("compression.c2s", "...") に相当
  • jsch.lang
    • JSch.setConfig("lang.s2c", "...") + JSch.setConfig("lang.c2s", "...") に相当
  • jsch.dhgex_min
    • JSch.setConfig("dhgex_min", "...") に相当
  • jsch.dhgex_max
    • JSch.setConfig("dhgex_max", "...") に相当
  • jsch.dhgex_preferred
    • JSch.setConfig("dhgex_preferred", "...") に相当
  • jsch.compression_level
    • JSch.setConfig("compression_level", "...") に相当
  • jsch.preferred_authentications
    • JSch.setConfig("PreferredAuthentications", "...") に相当
  • jsch.client_pubkey
    • JSch.setConfig("PubkeyAcceptedAlgorithms", "...") に相当
  • jsch.check_ciphers
    • JSch.setConfig("CheckCiphers", "...") に相当
  • jsch.check_macs
    • JSch.setConfig("CheckMacs", "...") に相当
  • jsch.check_kexes
    • JSch.setConfig("CheckKexes", "...") に相当
  • jsch.check_signatures
    • JSch.setConfig("CheckSignatures", "...") に相当
  • jsch.fingerprint_hash
    • JSch.setConfig("FingerprintHash", "...") に相当
  • jsch.max_auth_tries
    • JSch.setConfig("MaxAuthTries", "...") に相当