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นอกจากนี้คุณยังสามารถเปิดการบีบอัดบนพื้นฐานต่อเซสชั่นโดยใช้ตัวเลือกบรรทัดคำสั่ง

โปรดทราบว่าการบีบอัดจริงจะมีเล็กน้อยเชิงลบผลกระทบต่อประสิทธิภาพหากการเชื่อมต่อระหว่างคุณและเซิร์ฟเวอร์เป็นไปอย่างรวดเร็ว (เช่นใน LAN เดียวกันหรือเพียงแค่การเชื่อมต่อที่ดีจริงๆอินเทอร์เน็ต) หรือหนึ่งหรือทั้งสองฝ่ายมี CPU ช้า (กินบีบอัดยุติธรรมบิต ของเวลา CPU)

วันนี้สำหรับคนส่วนใหญ่ฉันขอแนะนำให้ใช้เท่าที่จำเป็น โดยทั่วไปแล้วสำหรับลิงค์ที่มีขนาดน้อยกว่า 5-10mbps และเฉพาะเมื่อส่งผ่านข้อมูลจำนวนมาก (ถ่ายโอนไฟล์ที่ไม่ได้บีบอัด, X11 หรือการส่งต่อ VNC สิ่งที่ต้องการ)


1
ที่จริงฉันอยากลองใช้มันเพื่อเร่งความเร็วในการรันแอปพลิเคชัน X ผ่าน SSH เซิร์ฟเวอร์ของฉันมีทรัพยากร CPU และ RAM ฟรีมากมายและไคลเอ็นต์ก็ไม่อ่อนแอเช่นกัน
อีวาน

2
การบีบอัดใน sshd_config สามารถเป็นได้ทั้ง "ใช่" หรือ "ล่าช้า" "ล่าช้า" มีความปลอดภัยมากขึ้นเนื่องจากช่องโหว่ zlib ไม่เปิดเผยคุณดังนั้นจึงเป็นค่าเริ่มต้น แต่ลูกค้าเก่าบางรายเช่น Tunnelier สนับสนุน "ใช่" เท่านั้น openssh.com/txt/release-4.2
endolith

Compressionสามารถเป็นได้ทั้งyesหรือnoหน้าคนกล่าวว่า ... ขอบคุณครับที่จำเป็นในการยกเลิกการบีบอัดมันสำหรับโทรศัพท์ Android ของฉัน ...
วิลฟ์

@Ivan คุณได้ลอง NoMachine NX หรือ freenx แล้วหรือยัง? ที่ควรจะเร็วกว่าเพียงแค่บีบอัด SSH
gmatht

โปรดทราบว่าCompressionLevelเป็นตัวเลือกที่ใช้ได้เฉพาะกับโปรโตคอล SSH 1 ซึ่งไม่ได้เปิดใช้งานตามค่าเริ่มต้นด้วย OpenSSH เวอร์ชันปัจจุบันอีกต่อไป
ckujau

23

คุณสามารถเปิดการบีบอัด gzip บน SSH ใดก็ได้ ใส่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 หากคุณใช้ windows: การเชื่อมต่อ -> SSH -> ตัวเลือกโปรโตคอล -> เปิดใช้งานการบีบอัด
Wug

0

คุณสามารถเปิดการบีบอัดด้วย-Cแต่จะไม่ทำงานหากเซิร์ฟเวอร์ไม่ได้รับอนุญาตให้ใช้พลังงานเคอร์เนลโดยไม่อนุญาตให้ทำการบีบอัด ตัวอย่างเช่นฉันได้เปลี่ยนตำแหน่งโฮสต์ของข้อมูลของตัวเองจาก Strato เป็นเซิร์ฟเวอร์ของฉัน ฉันรับรู้ได้เนื่องจากการใช้งานการดาวน์โหลด 2Mbit ที่ช้าและการเชื่อมต่ออัปโหลดที่ 0,3Mbit และตรวจสอบความแตกต่างของความเร็วขึ้นอยู่กับระดับการบีบอัดเนื่องจากระดับที่สูงกว่านั้นไม่ได้รวดเร็วกว่าทุกประการ
แต่ในกรณีของฉันมันใช้งานได้ดีเพราะมันสั้นลงเวลาที่ต้องการเป็น 6 ของเวลาก่อน


ฉันจะตรวจสอบทันทีที่เริ่มต้นเครือข่ายหากการบีบอัด Settet ได้รับความเร็วโดยทำการถ่ายโอนอย่างรวดเร็วทั้งในตัวเลือกและการตรวจสอบเวลา คำตอบที่ได้คือการตั้งค่าการบีบอัดอัตโนมัติหรือไม่ ตั้งแต่ที่ฉันไม่ต้องตรวจสอบการเชื่อมต่อของฉันตลอดเวลาก่อนที่จะถ่ายโอนบางสิ่งบางอย่างเพราะ allways ปรับได้ดีขึ้น
Andreas Bartels

0

เหตุผลที่ง่ายที่สุดคือการใช้อ็อพชัน -o บน cli มันสามารถใช้กับตัวเลือกการตั้งค่าใด ๆ เช่น

ssh -o "Compression no" -v <HOST>
# or
ssh -o "Compression yes" -v <HOST>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.