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 폴더의 예제 코드를 확인하세요. 그리고 Jsch-Configuration 및 Jsch-Logging과 같은 위키 페이지도 몇 가지 있습니다.

버전 관리

0.2.26까지는 원래 jsch 방식을 따랐으며, 2.27.0부터는 시맨틱 버저닝으로 전환하여 라이브러리 API가 안정적이고 프로덕션에서 사용되고 있음을 나타냅니다.

com.jcraft:jsch를 대체하기 위해 이 라이브러리를 사용하는 방법

클래스패스에 jsch 종속성이 하나만 있는지 확인하세요. 예를 들어 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 위키 페이지도 참조):
    • 전역적으로 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", "...")와 유사