2011-06-07 8 views
8

इच्छा है कि मैं एक आरटीएफएम गलती नहीं कर रहा हूं।जेएसएच चैनलएक्सैक और चैनलशेल के बीच सटीक अंतर क्या है?

क्या कोई मुझे टॉव के बीच विस्तार अंतर बता सकता है।

+0

बस पहली वाक्य के बारे में सुनिश्चित करने के लिए: क्या आपको [विकी में मैनुअल] (http://sourceforge.net/apps/mediawiki/jsch/index.php?title=Manual) के बारे में पता था, और मेरा [ जावाडोक] (http://epaul.github.com/jsch-documentation/simple.javadoc/)? यदि आपने आरएफसी नहीं पढ़ा है तो उदाहरण इस बारे में वास्तव में स्पष्ट नहीं हैं। –

उत्तर

15

The shell and exec channels काफी समान हैं - रिमोट शैल के साथ निष्पादन आदेश दोनों (कम से कम, अवधारणात्मक रूप से - सर्वर को अलग-अलग इलाज के लिए कॉन्फ़िगर किया जा सकता है)। आरएफसी 4254 उन्हें section "Interactive Sessions" में समूहित करता है, और वे दोनों (साथ ही सबसिस्टम, नीचे देखें) एसएसएच प्रोटोकॉल में चैनल प्रकार "सत्र" का उपयोग करते हैं।

  • ChannelShell के लिए, इनपुट स्ट्रीम इन आदेशों के लिए दोनों आदेश और इनपुट प्रदान करता है:

    एक महत्वपूर्ण अंतर है। यह आपके स्थानीय कंप्यूटर पर एक इंटरैक्टिव खोल का उपयोग कर जैसा है। (और यह सामान्य रूप से उस के लिए सिर्फ प्रयोग किया जाता है: इंटरैक्टिव उपयोग।)

  • ChannelExec के लिए, आदेशों connect() से पहले setCommand() के साथ दिया जाता है, और इनपुट धारा इनपुट के रूप में इन आदेशों को भेज दिया जाएगा। (अक्सर, आप केवल एक आदेश होगा, लेकिन आप सामान्य खोल विभाजक &, &&, |, ||, ;, न्यू लाइन, और मिश्रित आदेशों का उपयोग कर कई लोगों को प्रदान कर सकते हैं।) यह है पर एक खोल स्क्रिप्ट को क्रियान्वित करने की तरह अपने स्थानीय कंप्यूटर (बेशक, अगर आदेशों ही में से एक एक इंटरैक्टिव खोल है, यह एक ChannelShell तरह व्यवहार करेगा।)

  • एक तिहाई इसी तरह की एक, ChannelSubsystem, जो ssh सर्वर की एक उप-प्रणाली कार्यान्वित नहीं है - यहाँ सर्वर का विन्यास तय करता है कि क्या करना है, दूरस्थ उपयोगकर्ता के खोल नहीं। (सबसे अक्सर इस्तेमाल किया सबसिस्टम sftp है, लेकिन इस JSch के लिए एक विशेष चैनल है, जो प्रोटोकॉल को समझता है प्रदान करता है।)

+0

धन्यवाद। मैं बस कई दिन पहले jsch का उपयोग करने के लिए हुआ था। जाहिर है, मेरे पास सीखने के लिए कई चीजें हैं। मैं आरएफसी पढ़ूंगा। आपके सहयोग के लिए धन्यवाद! –

+2

आरएफसी पढ़ने से पहले, [जेएसएच मैनुअल] (http://sourceforge.net/apps/mediawiki/jsch/index.php?title=Manual) को पढ़ने का प्रयास करें - यह छोटा है, और अधिक जेएसएच विशिष्ट है। इसके अलावा, आपको केवल ओवरव्यू [आरएफसी 5251] (http://tools.ietf.org/html/rfc4251) की आवश्यकता है, प्रोटोकॉल के तकनीकी विवरण नहीं, मुझे लगता है। –

0

अभी भी कार्यकारी चैनल और खोल चैनल के बीच एक और महत्वपूर्ण अंतर है: खोल चैनल स्थापित करेगा खोल पर्यावरण, उदाहरण के लिए, पर्यावरण चर, जबकि निष्पादन चैनल नहीं होगा।

संबंधित मुद्दे