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.1k188منذ 8 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

نسخة مشتقة من JSch-0.1.55

انظر README الأصلي

GitHub release Maven Central Java CI with Maven

لماذا يجب عليك استخدام هذه المكتبة؟

كما شرحت في مقالة مدونة النقاط الرئيسية هي:

  • قام OpenSSH بتعطيل ssh-rsa افتراضيًا في الإصدار 8.8 وتحتاج إلى مكتبة تدعم rsa-sha2-256 و rsa-sha2-512.
  • استبدال مباشر: فقط قم بتغيير إحداثيات التبعية وستكون جاهزًا.
  • لا توجد صيانة نشطة لـ JSch على SourceForge.
  • البقاء متزامنًا مع ميزات OpenJDK بحيث لا حاجة لتبعيات إضافية.

هل توجد أي وثائق؟

ليس كثيرًا. اطّلع على الكود المثال في مجلد examples. وهناك بعض صفحات الويكي، مثل Jsch-Configuration و Jsch-Logging.

التحكم في الإصدارات

حتى 0.2.26، اتبع التحكم في الإصدارات نظام jsch الأصلي، ومنذ 2.27.0، انتقلنا إلى الإصدارات الدلالية، معبّرين عن أن واجهة برمجة تطبيقات المكتبة مستقرة وتُستخدم في الإنتاج.

كيفية استخدام هذه المكتبة كبديل لـ com.jcraft:jsch

تأكد من أن لديك تبعية jsch واحدة فقط في classpath. على سبيل المثال يمكنك التحقق من مخرجات mvn dependency:tree.

عن طريق استبدال تبعية مافن مباشرة

استبدل

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>

عن طريق استبدال jsch كتبعية مافن انتقالية

عندما يكون لديك أداة (artifact) foo:bar تحتوي على com.jcraft:jsch كتبعية انتقالية، يجب إضافة 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).

الأسئلة الشائعة

ما هو الحد الأدنى لإصدار 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) إلى classpath.
    • لاستخدام curve25519-sha256 و curve448-sha512، يجب استخدام Java 11 على الأقل أو إضافة Bouncy Castle (bcprov-jdk18on) إلى classpath.
    • لاستخدام chacha20-poly1305@openssh.com، يجب إضافة Bouncy Castle (bcprov-jdk18on) إلى classpath.
  • اعتبارًا من إصدار 0.1.66، يمكن الآن استخدام هذه الخوارزميات مع إصدارات Java الأقدم إذا تمت إضافة Bouncy Castle (bcprov-jdk18on) إلى classpath.
    • اعتبارًا من إصدار 0.1.72، لا يمكن استخدام chacha20-poly1305@openssh.com إلا إذا تمت إضافة Bouncy Castle (bcprov-jdk18on) إلى classpath.

لماذا لا تعمل مفاتيح من نوع ssh-rsa مع نسخة JSch المشتقة هذه وخادمي؟

  • اعتبارًا من إصدار 0.2.0، تم تعطيل خوارزمية توقيع RSA/SHA1 افتراضيًا.
    • لم يعد SHA1 يعتبر آمنًا من قبل مجتمع التشفير العام، وتسعى نسخة JSch المشتقة هذه إلى الحفاظ على خيارات آمنة للخوارزميات الافتراضية التي ستستخدمها.
    • هذا أيضًا يتبع نهج مشروع OpenSSH حيث قاموا بتعطيل توقيعات RSA/SHA1 افتراضيًا اعتبارًا من إصدار OpenSSH 8.8.
  • تستمر مفاتيح نوع ssh-rsa في العمل افتراضيًا مع خوارزميات التوقيع RSA/SHA256 (rsa-sha2-256) و RSA/SHA512 (rsa-sha2-512) المعرفة بواسطة RFC 8332.
  • إذا كان خادمك يدعم توقيعات RSA/SHA1 فقط وتحتاج إلى استخدامها في تطبيقك، فستحتاج إلى إعادة تمكينها يدويًا بإحدى الطرق التالية (انظر أيضًا صفحة الويكي Jsch-Configuration):
    • بشكل عام عن طريق إضافة "ssh-rsa" إلى الخاصيتين jsch.server_host_key + jsch.client_pubkey.
    • بشكل عام عن طريق تنفيذ شيء مشابه لـ 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").

هل هذه النسخة المشتقة متوافقة 100% مع JSch الأصلي، لأن الاتصال بخادمي لم يعد يعمل!

  • من أجل التوافق مع 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

  • Jsync https://github.com/fizzed/jsync - يوفر أداة مزامنة ملفات ودلائل بسيطة وفعالة وموثوقة ونقية بلغة Java تشبه rsync، ويمكن استخدامها برمجيًا.
  • Blaze https://github.com/fizzed/blaze - طريقة لتشغيل ملفات Java كنصوص برمجية، مع ميزات قوية من SSH و SFTP وما يشبه rsync مضمنة مباشرة.

التغييرات منذ النسخة المشتقة:

انظر ChangeLog.md

تنزيل الأداة
  • إضافة "ssh-rsa" إلى ملف الإعدادات من نوع OpenSSH الخاص بك مع الكلمتين المفتاحيتين "HostKeyAlgorithms" + "PubkeyAcceptedAlgorithms" ثم استخدام فئة OpenSSHConfig.
  • مماثل لـ JSch.setConfig("cipher.s2c", "...") + 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", "...")