Использует ли SSH сжатие?


45

Мне любопытно, сжимает ли SSH свои данные перед отправкой / получением? Если по умолчанию нет, то можно ли его включить?

Ответы:


49

Нет и да Что-то вроде. Иными словами, он поддерживает сжатие (zlib или zlib-ish, насколько я помню), но в стандартной копии OpenSSH не включено по умолчанию, хотя некоторые дистрибутивы могут включать его по умолчанию (я не думаю, что Ubuntu делает ).

Смотрите man ssh_configподробности. Вы ищете параметры Compressionи CompressionLevel, которые затем можете установить /etc/ssh/ssh_config.

Обратите внимание, что есть также Compressionопция для серверной стороны, в sshd_configкоторой определяется, разрешено ли сжатие (по умолчанию). Опять же, смотрите man sshd_configдетали.

Вы также можете включить сжатие для каждого сеанса с помощью параметра командной строки -C.

Обратите внимание, что сжатие может на самом деле иметь немного отрицательное влияние на производительность, если соединение между вами и сервером быстрое (например, в одной локальной сети или только при действительно хороших интернет-соединениях) или если одна или обе стороны имеют медленный процессор (сжатие съедает немало процессорного времени).

В эти дни, для большинства людей, я бы предложил использовать его только по мере необходимости. Обычно для каналов со скоростью менее 5-10 Мбит / с и только при передаче большого количества объемных данных (передача несжатых файлов, пересылка X11 или VNC и тому подобное).


1
На самом деле я хочу попробовать использовать его для ускорения запуска приложений X через SSH. Мой сервер имеет много свободных ресурсов процессора и оперативной памяти, и клиент тоже не слишком слаб.
Иван

2
Сжатие в sshd_config может быть «да» или «отложено». «Задержка» более безопасна, так как уязвимость zlib не раскрывает вас, поэтому она используется по умолчанию, но некоторые старые клиенты, такие как Tunnelier, поддерживают только «да». openssh.com/txt/release-4.2
эндолиты

Compressionможет быть, yesили noстраница руководства говорит ... В любом случае, спасибо, нужно было распаковать его для моего телефона Android ...
Wilf

@Ivan Вы пробовали NoMachine NX или freenx? Это должно быть быстрее, чем просто сжать ssh.
Gmatht

Обратите внимание, что эта CompressionLevelопция была доступна только для протокола SSH 1, который больше не включен по умолчанию в текущих версиях OpenSSH.
ckujau

24

Вы можете включить сжатие 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 на мой сервер. Я распознал это из-за использования медленной загрузки 2 Мбит и соединения загрузки 0,3 Мбит и проверил разницу в скорости в зависимости от уровня сжатия, поскольку более высокий уровень не всегда быстрее, так как он потребляет мощность вашего процессора или мощность сервера.
но в моем случае это делает хорошую работу, так как сокращает необходимое время до 6-й раз раньше.


При запуске сети я действительно проверяю, набирает ли скорость сжатие Settet, выполняя быструю передачу в обоих вариантах и ​​проверяя время. Полученный ответ - чем автоматическая настройка сжатия или нет. После этого мне не нужно постоянно проверять соединение, прежде чем что-то передавать, так как оно всегда лучше настроено.
Андреас Бартельс

0

Проще всего использовать опцию -o в кли. Он также может быть использован с любым параметром конфигурации, например

ssh -o "Compression no" -v <HOST>
# or
ssh -o "Compression yes" -v <HOST>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.