OpenSSH: आंतरिक- sftp और sftp-server के बीच अंतर


81

एसएफटीपी को ओपनएसएसएच के साथ सेटअप करने के लिए दो तरीके क्यों हैं और कब उपयोग करना है? क्या उनके बीच कोई अंतर है?

मेरा मतलब है कि पहला व्यक्ति ओपनएसएसएच से एक लीब का उपयोग कर रहा है और दूसरा कहता है कि "आंतरिक का उपयोग करें", इसलिए यह ओपनएसएसएच भी है?

Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

जवाबों:


94

दोनों sftp-serverऔर internal-sftpOpenSSH का हिस्सा हैं। sftp-serverएक स्टैंडअलोन बाइनरी है। internal-sftpकेवल एक कॉन्फ़िगरेशन कीवर्ड है जो किसी अन्य प्रक्रिया (आमतौर पर ) को चलाने के बजाय, sshdSFTP सर्वर कोड का उपयोग करने के लिए कहता है ।sshdsftp-server


कार्यात्मक दृष्टिकोण से, sftp-serverऔर internal-sftpलगभग समान हैं। वे एक ही स्रोत कोड से निर्मित होते हैं।

इसका मुख्य लाभ internal-sftpयह है कि ChrootDirectoryनिर्देश के साथ उपयोग किए जाने पर इसे समर्थन फ़ाइलों की आवश्यकता नहीं होती है ।

sshd_config(5)आदमी पृष्ठ से उद्धरण :

  • के लिए Subsystemनिर्देश :

    आदेश sftp-serverSFTP फ़ाइल स्थानांतरण सबसिस्टम लागू करता है।

    वैकल्पिक रूप से नाम internal-sftpएक इन-प्रोसेस SFTP सर्वर को लागू करता है। यह ChrootDirectoryक्लाइंट पर एक अलग फाइल सिस्टम रूट को मजबूर करने के लिए कॉन्फ़िगरेशन को सरल बना सकता है।

  • के लिए ForceCommandनिर्देश :

    एक आदेश निर्दिष्ट करना एक internal-sftpइन-प्रोसेस SFTP सर्वर के उपयोग को मजबूर करता है जिसके लिए उपयोग किए जाने पर कोई समर्थन फ़ाइलों की आवश्यकता नहीं होती है ChrootDirectory

  • के लिए ChrootDirectoryनिर्देश :

    ChrootDirectoryउपयोगकर्ता के सत्र का समर्थन आवश्यक फ़ाइलों और निर्देशिकाओं शामिल होना चाहिए। एक इंटरैक्टिव सत्र के लिए यह कम से कम एक खोल, आम तौर पर की आवश्यकता है sh, और बुनियादी /devजैसे नोड्स null, zero, stdin, stdout, stderr, और ttyउपकरणों। SFTP का उपयोग करके फ़ाइल स्थानांतरण सत्रों के लिए पर्यावरण का कोई अतिरिक्त विन्यास आवश्यक नहीं है यदि इन-प्रोसेस sftp-server का उपयोग किया जाता है, हालांकि सत्र जो लॉगिंग का उपयोग करते हैं उन्हें /dev/logकुछ ऑपरेटिंग सिस्टम ( sftp-serverविवरण के लिए देखें) पर chroot निर्देशिका के अंदर की आवश्यकता हो सकती है ।

internal-sftpप्रदर्शन का एक और लाभ है, क्योंकि इसके लिए एक नई उप-प्रक्रिया को चलाने के लिए आवश्यक नहीं है।


internal-sftpस्टैंडअलोन से (2008 में OpenSSH 4.9p1?) बहुत बाद में जोड़ा गया था sftp-serverबाइनरी है, लेकिन यह अब तक डिफ़ॉल्ट है।

मेरा मानना ​​है कि sftp-serverनए प्रतिष्ठानों के लिए उपयोग करने का कोई कारण नहीं है ।


ऐसा लग सकता है कि sshdयह स्वचालित रूप से उपयोग कर सकता है internal-sftp, जब इसका सामना होता है sftp-server, क्योंकि कार्यक्षमता समान है और internal-sftpयहां तक ​​कि उपरोक्त फायदे भी हैं। लेकिन किनारे के मामले हैं, जहां मतभेद हैं।

कुछ उदाहरण:

  • व्यवस्थापक कुछ उपयोगकर्ताओं को लॉग इन करने से रोकने के लिए एक लॉगिन शेल कॉन्फ़िगरेशन पर भरोसा कर सकता है। internal-sftpबाइपास पर स्विच करना , क्योंकि लॉगिन शेल अब शामिल नहीं है।

  • sftp-serverबाइनरी का उपयोग करना (एक स्टैंडअलोन प्रक्रिया होने के नाते) आप कुछ हैक का उपयोग कर सकते हैं, जैसे कि एसएफटीपी के तहत चल रहा हैsudo

  • SSH-1 के लिए (यदि कोई अभी भी इसका उपयोग कर रहा है), Subsystemनिर्देश बिल्कुल भी शामिल नहीं है। SSH-1 का उपयोग करने वाला एक SFTP सर्वर स्पष्ट रूप से सर्वर को बताता है कि सर्वर को क्या बाइनरी चलना चाहिए। तो विरासत SSH-1 SFTP ग्राहकों का sftp-serverनाम हार्ड-कोडित है।



6

आप बाहरी sftp-server के लिए अधिकृत_की लॉक कर सकते हैं।

कमांड = "/ usr / libexec / opensh / sftp-server" ssh-rsa AAAA… == user -host.com

जब आप करते हैं, आपका उपयोगकर्ता sftp कर सकता है, लेकिन scp या ssh नहीं कर सकता:

$ sftp होस्ट: / etc / group / tmp
होस्ट से कनेक्ट हो रहा है ...
लेजिंग / आदि / ग्रुप टू / टैम्प / ग्रुप
/ etc / समूह 100% 870 0.9KB / s 00:00

कुछ और करने की कोशिश सिर्फ लटकेगी:

$ scp होस्ट: / etc / group / tmp
संकेत द्वारा मारे गए २।

$ ssh होस्ट अपटाइम
संकेत द्वारा मारे गए २।

काश, जब तक sshd_config को संशोधित नहीं किया जाता है, तब तक चाबी को लॉक करने के लिए कोई आसान तरीका नहीं है। यह वास्तव में एक उपयोगकर्ता के लिए अच्छा होगा कि वह सिस्टम मैनेजर के हस्तक्षेप के बिना कर सके।


3
ForceCommand internal-sftpउसी को प्राप्त करना चाहिए
ptman

हैंडी बात यह है कि चेरोट के बिना आप sshfs host:/home/user/.ssh ~/hackmeउन सभी सेटिंग्स को वापस खोलने के लिए उपयोग कर सकते हैं जो आपके दिमाग को बाद में बदल देते हैं।
sh1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.