क्या SSH किसी भी संपीड़न का उपयोग करता है?


44

मैं उत्सुक हूं, क्या SSH इसे भेजने / प्राप्त करने से पहले अपने डेटा को संपीड़ित करता है? यदि यह डिफ़ॉल्ट रूप से नहीं होता है, तो क्या इसे चालू किया जा सकता है?

जवाबों:


48

हाँ और न। एक प्रकार का। जो कहना है, यह संपीड़न (zlib या zlib-ish, जैसा कि मुझे याद है) का समर्थन करता है, लेकिन OpenSSH की एक स्टॉक कॉपी में डिफ़ॉल्ट रूप से सक्षम नहीं है, हालांकि कुछ वितरण डिफ़ॉल्ट रूप से इसे सक्षम कर सकते हैं (मुझे नहीं लगता कि Ubuntu है) )।

man ssh_configविवरण के लिए देखें। आप उन विकल्पों Compressionऔर CompressionLevelविकल्पों की तलाश कर रहे हैं, जिन्हें आप बाद में सेट कर सकते हैं /etc/ssh/ssh_config

ध्यान दें कि Compressionसर्वर साइड के लिए एक विकल्प भी है sshd_configजिसमें निर्धारित किया जाता है कि क्या संपीड़न की अनुमति है (यह डिफ़ॉल्ट रूप से है)। फिर से, man sshd_configविवरण के लिए देखें।

आप कमांड लाइन विकल्प का उपयोग करके प्रति-सत्र के आधार पर संपीड़न को चालू कर सकते हैं -C

ध्यान दें कि संपीड़न वास्तव में थोड़ा नकारात्मक प्रदर्शन प्रभाव डाल सकता है यदि आपके और सर्वर के बीच का कनेक्शन तेज है (उदाहरण के लिए उसी लैन पर या बस वास्तव में अच्छे इंटरनेट कनेक्शन पर) या एक या दोनों पक्षों में धीमा सीपीयू है (संपीड़न एक निष्पक्ष बिट खाता है CPU समय)।

इन दिनों, ज्यादातर लोगों के लिए, मैं केवल आवश्यकतानुसार इसका उपयोग करने का सुझाव दूंगा। आमतौर पर 5-10mbps से कम के लिंक के लिए और केवल बहुत सारे डेटा पास करते समय (पहले से संपीड़ित फ़ाइलें, X11 या VNC अग्रेषण, उस तरह की चीजें) के स्थानांतरण।


1
वास्तव में मैं SSH के ऊपर चल रहे X अनुप्रयोगों को गति देने के लिए इसका उपयोग करने का प्रयास करना चाहता हूं। मेरे सर्वर में बहुत सारे मुफ्त सीपीयू और रैम संसाधन हैं और क्लाइंट बहुत कमजोर भी नहीं है।
इवान

2
Sshd_config में संपीड़न या तो "हां" या "विलंबित" हो सकता है। "विलंबित" अधिक सुरक्षित है, क्योंकि ज़ालिब भेद्यता आपको उजागर नहीं करती है, इसलिए यह डिफ़ॉल्ट है, लेकिन कुछ पुराने क्लाइंट जैसे टनलियर केवल "हाँ" का समर्थन करते हैं। opensh.com/txt/release-4.2
एंडोलिथ

Compressionया तो हो सकता है yesया noमैन पेज कहता है ... वैसे भी, मेरे एंड्रॉइड फोन के लिए इसे
अनलॉकर

@ इवान क्या आपने नो मेचिन एनएक्स या फ्रीनक्स की कोशिश की है? यह सिर्फ ssh कमिंग से तेज होना चाहिए।
गमथ

ध्यान दें कि CompressionLevelएक विकल्प था जो केवल SSH प्रोटोकॉल 1 के लिए उपलब्ध था जो अब OpenSSH के वर्तमान संस्करणों के साथ डिफ़ॉल्ट रूप से सक्षम नहीं है
ckujau

23

आप किसी भी SSH पर gzip कम्प्रेशन को चालू कर सकते हैं। Compression yesअपने में रखो ~/.ssh/config, और यह काम करना चाहिए। वैकल्पिक रूप से, विकल्प के sshसाथ चलने का प्रयास करें -C


8

Ssh मैन पेज से ( man sshपूरी बात देखने के लिए टाइप करें):

 -C      Requests compression of all data (including stdin, stdout,
         stderr, and data for forwarded X11 and TCP connections).  The
         compression algorithm is the same used by gzip(1), and the
         “level” can be controlled by the CompressionLevel option for pro-
         tocol version 1.  Compression is desirable on modem lines and
         other slow connections, but will only slow down things on fast
         networks.  The default value can be set on a host-by-host basis
         in the configuration files; see the Compression option.

तो बस बदलें:

ssh hostname

सेवा:

ssh -C hostname

2
यदि आप विंडोज़ का उपयोग कर रहे हैं तो आप इस विकल्प को PuTTY में सक्षम कर सकते हैं: कनेक्शन -> एसएसएच -> प्रोटोकॉल विकल्प -> संपीड़न सक्षम करें।
WUG

0

यदि आप -Cसर्वर को इसके लिए संपीड़न की अनुमति नहीं देकर इसके लिए कर्नेल पावर खर्च करने की अनुमति नहीं है, तो आप संपीड़न पर स्विच कर सकते हैं, लेकिन यह काम नहीं करेगा। उदाहरण के लिए, मैंने इस वजह से, कुछ डेटा के होस्ट स्थान को Strato से खान के सर्वर में बदल दिया। मैंने इसे धीमी 2Mbit डाउनलोड और 0,3Mbit अपलोड कनेक्शन के उपयोग के कारण पहचाना और सम्पीडन स्तर के आधार पर गति के अंतर की जांच की क्योंकि उच्च स्तर के लिए यह जल्दी नहीं है क्योंकि यह आपके प्रोसेसर पावर या सर्वर पावर के बेकार है।
लेकिन मेरे मामले में यह एक अच्छा काम करता है क्योंकि यह समय से पहले 6 वें दिन के लिए आवश्यक समय को छोटा कर देता है।


अगर नेटवर्क सेटलमेंट कम्प्रेशन दोनों विकल्पों में त्वरित ट्रांसफ़र करके और समय की जाँच करके गति प्राप्त कर रहा है, तो मैं नेटवर्क को शुरू करने के समय पर जाँच करता हूँ। परिणामी उत्तर संपीड़न या नहीं स्वचालित सेटिंग से है। चूंकि मुझे कुछ स्थानांतरित करने से पहले हर समय अपने कनेक्शन की जांच करने की आवश्यकता नहीं है क्योंकि यह बेहतर समायोजित है।
एंड्रियास बार्टेल्स

0

सबसे आसान क्यों -o विकल्प का उपयोग करना है, cli पर। इसका उपयोग किसी भी विन्यास विकल्प के साथ किया जा सकता है

ssh -o "Compression no" -v <HOST>
# or
ssh -o "Compression yes" -v <HOST>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.