SSH có sử dụng bất kỳ nén nào không?


44

Tôi tò mò, SSH có nén dữ liệu của mình trước khi gửi / nhận không? Nếu nó không mặc định, thì nó có thể được bật không?

Câu trả lời:


48

Không và có. Loại. Có thể nói, nó hỗ trợ nén (zlib hoặc zlib-ish, như tôi nhớ), nhưng một bản sao của OpenSSH không được bật theo mặc định, mặc dù một số bản phân phối có thể kích hoạt theo mặc định (tôi không nghĩ Ubuntu làm như vậy ).

Xem man ssh_configđể biết chi tiết. Bạn đang tìm kiếm CompressionCompressionLevelcác tùy chọn, sau đó bạn có thể đặt /etc/ssh/ssh_config.

Lưu ý rằng cũng có một Compressiontùy chọn cho phía máy chủ sshd_configxác định xem có cho phép nén hay không (theo mặc định). Một lần nữa, xem man sshd_configđể biết chi tiết.

Bạn cũng có thể bật tính năng nén trên cơ sở mỗi phiên bằng cách sử dụng tùy chọn dòng lệnh -C.

Lưu ý rằng việc nén thực sự có thể có tác động hiệu suất hơi tiêu cực nếu kết nối giữa bạn và máy chủ nhanh (ví dụ trên cùng một mạng LAN hoặc chỉ trên các kết nối internet thực sự tốt) hoặc một hoặc cả hai bên có CPU chậm (nén ăn một chút công bằng thời gian CPU).

Ngày nay, đối với hầu hết mọi người, tôi khuyên bạn chỉ nên sử dụng nó khi cần thiết. Thông thường đối với các liên kết dưới 5-10mbps và chỉ khi truyền nhiều dữ liệu hàng loạt (chuyển các tệp chưa được nén, chuyển tiếp X11 hoặc VNC, đại loại như vậy).


1
Thật ra tôi muốn thử sử dụng nó để tăng tốc độ chạy các ứng dụng X qua SSH. Máy chủ của tôi có nhiều tài nguyên CPU và RAM miễn phí và máy khách cũng không quá yếu.
Ivan

2
Nén trong sshd_config có thể là "có" hoặc "bị trì hoãn". "Trì hoãn" sẽ an toàn hơn, vì lỗ hổng zlib không làm lộ ra bạn, vì vậy đó là mặc định, nhưng một số khách hàng cũ như Tunnelier chỉ hỗ trợ "có". openssh.com/txt/release-4.2
endolith

Compressioncó thể là yeshoặc notrang người đàn ông nói ... Dù sao cũng cảm ơn, cần phải giải nén nó cho điện thoại Android của tôi ...
Wilf

@Ivan Bạn đã thử NoMachine NX hoặc freenx chưa? Điều đó sẽ nhanh hơn so với chỉ ssh commpressing.
gmatht

Lưu ý rằng đó CompressionLevellà một tùy chọn chỉ khả dụng cho giao thức SSH 1 không còn được bật theo mặc định với các phiên bản hiện tại của OpenSSH.
ckujau

23

Bạn có thể bật nén gzip trên bất kỳ SSH nào. Đặt Compression yesvào của bạn ~/.ssh/config, và nó sẽ làm việc. Ngoài ra, hãy thử chạy sshvới -Ctùy chọn.


8

Từ trang ssh man (gõ man sshđể xem toàn bộ):

 -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.

Vì vậy, chỉ cần thay đổi:

ssh hostname

đến:

ssh -C hostname

2
Bạn có thể bật tùy chọn này trong PuTTY nếu bạn đang sử dụng windows: Kết nối -> SSH -> Tùy chọn giao thức -> Bật Nén.
Wug

0

bạn có thể bật tính năng nén -Cnhưng nó sẽ không hoạt động nếu máy chủ không được phép sử dụng năng lượng hạt nhân cho nó bằng cách không cho phép nén cho việc này. Ví dụ, tôi đã làm, vì điều này, thay đổi vị trí Máy chủ của một số dữ liệu riêng từ Strato thành máy chủ của tôi. Tôi nhận ra điều đó do việc sử dụng tải xuống 2Mbit chậm và kết nối tải lên 0,3Mbit và đã kiểm tra sự khác biệt về tốc độ tùy thuộc vào mức độ nén vì mức cao hơn không phải là nhanh hơn vì nó làm giảm sức mạnh bộ xử lý của bạn hoặc sức mạnh máy chủ.
nhưng trong trường hợp của tôi, nó làm rất tốt vì nó rút ngắn thời gian cần thiết xuống còn 6 lần trước đó.


Tôi kiểm tra tại mọi thời điểm khi bắt đầu mạng nếu quá trình nén Settet đang tăng tốc bằng cách chuyển nhanh trong cả hai tùy chọn và kiểm tra thời gian. Câu trả lời kết quả là hơn tự động thiết lập nén hay không. Vì tôi không phải kiểm tra kết nối của mình mọi lúc trước khi chuyển một cái gì đó vì nó luôn được điều chỉnh tốt hơn.
Andreas Bartels

0

Dễ nhất tại sao lại sử dụng tùy chọn -o, trên cli. Nó có thể được sử dụng với bất kỳ tùy chọn cấu hình nào, vd

ssh -o "Compression no" -v <HOST>
# or
ssh -o "Compression yes" -v <HOST>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.