
पूरी तरह से जावा SSH क्लाइंट/सर्वर लाइब्रेरी जो SSH-2 प्रोटोकॉल को लागू करती है, जिसमें कई सिफर, कुंजी विनिमय, प्रमाणीकरण विधियाँ, SFTP, SCP और सुरक्षित दूरस्थ पहुँच के लिए पोर्ट फ़ॉरवर्डिंग का समर्थन है।

Apache MINA SSHD एक 100% शुद्ध जावा लाइब्रेरी है जो क्लाइंट और सर्वर दोनों पक्षों पर SSH प्रोटोकॉल का समर्थन करती है। इसका उद्देश्य यूनिक्स ऑपरेटिंग सिस्टम के SSH क्लाइंट या SSH सर्वर का प्रतिस्थापन बनना नहीं है, बल्कि यह Java आधारित अनुप्रयोगों को SSH सहायता प्रदान करती है।
लाइब्रेरी कई I/O बैक-एंड का लाभ उठा सकती है:
AsynchronousSocketChannels का उपयोग करता है।server-sig-algs एक्सटेंशन के लिए डिफ़ॉल्ट क्लाइंट और सर्वर कार्यान्वयन भी प्रदान करता है।supported - DRAFT 05 - धारा 4.4supported2 - DRAFT 13 धारा 5.4versions - DRAFT 09 धारा 4.6vendor-id - DRAFT 09 - धारा 4.4acl-supported - DRAFT 11 - धारा 5.4newline - DRAFT 09 धारा 4.3md5-hash, md5-hash-handle - DRAFT 09 - धारा 9.1.1check-file-handle, - eddsa वैकल्पिक मॉड्यूल आवश्यक है), [email protected], [email protected]
, [email protected], [email protected], [email protected]
, [email protected], [email protected], [email protected]नोट: उपरोक्त सूची में कोड में समर्थित सभी सुरक्षा सेटिंग्स शामिल हैं। हालाँकि, नवीनतम अनुशंसाओं के अनुसार डिफ़ॉल्ट क्लाइंट/सर्वर सेटअप में केवल वे सुरक्षा सेटिंग्स शामिल हैं जिन्हें वर्तमान में उपयोग करना सुरक्षित माना जाता है। जो उपयोगकर्ता असुरक्षित सेटिंग्स शामिल करना चाहते हैं, उन्हें ऐसा स्पष्ट रूप से करना होगा। निम्नलिखित सेटिंग्स हटा दी गई हैं और अब डिफ़ॉल्ट सेटअप में शामिल नहीं हैं:
चेतावनी: RFC 8332 - धारा 3.31 के अनुसार
कार्यान्वयन अनुभव से पता चला है कि ऐसे सर्वर हैं जो उन क्लाइंटों पर प्रमाणीकरण दंड लागू करते हैं जो उन सार्वजनिक कुंजी एल्गोरिदम का प्रयास करते हैं जिन्हें SSH सर्वर समर्थन नहीं करता है।
RSA कुंजी के साथ ऐसे सर्वर के विरुद्ध प्रमाणीकरण करते समय जो "server-sig-algs" एक्सटेंशन लागू नहीं करता है, प्रमाणीकरण दंड से बचने के लिए क्लाइंट डिफ़ॉल्ट रूप से "ssh-rsa" हस्ताक्षर का उपयोग कर सकते हैं। जब नए rsa-sha2-* एल्गोरिदम को "ssh-rsa" को अक्षम करने के लिए पर्याप्त रूप से व्यापक रूप से अपनाया गया है, तो क्लाइंट डिफ़ॉल्ट रूप से नए एल्गोरिदम में से किसी एक का उपयोग कर सकते हैं।
इसका मतलब है कि जो उपयोगकर्ता इस (और संबंधित) समस्याओं का सामना करते हैं, उन्हें समस्या से बचने के लिए समर्थित सुरक्षा सेटिंग्स को स्पष्ट रूप से संशोधित करना होगा।
विशेष सूचना: ssh-rsa को डिफ़ॉल्ट सेटअप के भाग के रूप में छोड़ दिया गया था क्योंकि अभी भी कई सिस्टम/उपयोगकर्ता इसका उपयोग कर रहे हैं। हालाँकि, भविष्य के संस्करण में इसे डिफ़ॉल्ट से हटा दिया जाएगा। इसलिए हम उपयोगकर्ताओं को जल्द से जल्द अन्य कुंजियों (जैसे ECDSA, ED25519) पर स्थानांतरित करने के लिए दृढ़ता से प्रोत्साहित करते हैं।
बग रिपोर्ट और सुधार या सुविधा अनुरोध GitHub issue tracker या Apache issue tracker पर दर्ज किए जा सकते हैं।
संवेदनशील मुद्दे जैसे सुरक्षा भेद्यता को किसी भी इश्यू ट्रैकर के माध्यम से नहीं, बल्कि निजी चैनलों के माध्यम से रिपोर्ट किया जाना चाहिए।
Java 8+ (संस्करण 1.3 के अनुसार)
कोड केवल मूल अमूर्त slf4j-api मॉड्यूल की आवश्यकता रखता है। लॉगिंग API का वास्तविक कार्यान्वयन कई मौजूदा अनुकूलन से चुना जा सकता है।
sshd-common - पूरे प्रोजेक्ट में उपयोग की जाने वाली मूल कक्षाएं और वह कोड शामिल है जिसके लिए क्लाइंट या सर्वर नेटवर्क समर्थन की आवश्यकता नहीं है।
sshd-core - कनेक्शन, ट्रांसपोर्ट, चैनल, फ़ॉरवर्डिंग आदि को लागू करने वाला मूल SSH क्लाइंट/सर्वर कोड शामिल है।
sshd-sftp - सर्वर-साइड SFTP उपतंत्र और SFTP क्लाइंट कोड शामिल है।
sshd-scp - सर्वर-साइड SCP कमांड हैंडलर और SCP क्लाइंट कोड शामिल है।
sshd-ldap - सर्वर-साइड पासवर्ड और पब्लिक की प्रमाणितकर्ता शामिल हैं जो LDAP सर्वर का उपयोग करते हैं।
sshd-git - JGit SSH सत्र फ़ैक्टरी के लिए प्रतिस्थापन शामिल है।
sshd-osgi - एक आर्टिफ़ैक्ट शामिल है जो sshd-common और sshd-core को जोड़ता है ताकि इसे OSGi वातावरण में तैनात किया जा सके।
sshd-putty - कोड शामिल है जो PUTTY की फ़ाइलों को पार्स कर सकता है।
sshd-openpgp - कोड शामिल है जो OpenPGP की फ़ाइलों को पार्स कर सकता है (कुछ सीमाओं के साथ - प्रासंगिक अनुभाग देखें)।
sshd-cli - कमांड-लाइन क्लाइंट/सर्वर के लिए सरल टेम्पलेट शामिल हैं - Linux ssh/sshd कमांड के समान दृश्य-अनुभव प्रदान करने के लिए उपयोग किया जाता है।
sshd-contrib - प्रायोगिक कोड जो वर्तमान में समीक्षा के अधीन है और अन्य आर्टिफ़ैक्ट में शामिल हो सकता है (या पूरी तरह से नया आर्टिफ़ैक्ट बन सकता है - उदाहरण के लिए, sshd-putty इसी तरह विकसित हुआ)।
परीक्षण सहित
mvn clean install
बिना परीक्षण के
mvn -Pquick clean install
check-file-namecopy-file, copy-data - DRAFT 00 - धारा 6, 7space-available - DRAFT 09 - धारा 9.2filename-charset, filename-translation-control - DRAFT 13 - धारा 6 - केवल क्लाइंट पक्ष