Чи використовує 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.

Зауважте, що стиснення насправді може мати незначний негативний вплив на продуктивність, якщо з'єднання між вами та сервером є швидким (наприклад, в одній і тій же локальній мережі або просто на дуже хороших підключеннях до Інтернету) або одна чи обидві сторони мають повільний процесор (стиснення їсть неабияк трохи часу процесора).

У наші дні для більшості людей я б пропонував використовувати його лише за потреби. Як правило, для посилань менше 5-10 Мбіт / с і лише при передачі безлічі об'ємних даних (передачі ще не стислих файлів, пересилання X11 або VNC, подібні речі).


1
Насправді я хочу спробувати використовувати його для прискорення запуску X-програм через SSH. Мій сервер має безліч безкоштовних ресурсів процесора та оперативної пам’яті, а клієнт теж не надто слабкий.
Іван

2
Стиснення в sshd_config може бути або "так", або "запізнілим". "Відкладено" є більш безпечним, оскільки вразливість zlib не піддається вам, тому це за замовчуванням, але деякі старі клієнти, як Tunnelier, підтримують лише "так". openssh.com/txt/release-4.2
ендоліти

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

@Ivan Ви пробували NoMachine NX або freenx? Це має бути швидше, ніж просто стиснення ssh.
gmatht

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

23

Ви можете увімкнути компресію gzip на будь-якому SSH. Покладіть Compression yesу своє ~/.ssh/config, і воно має спрацювати. Як альтернативи, спробуйте запустити sshз -Cопцією.


8

На сторінці ssh man (введіть, 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 -> Параметри протоколу -> Увімкнути стиснення.
Вуг

0

Ви можете увімкнути компресію, -Cале вона не працюватиме, якщо серверу не дозволено витрачати на неї енергію ядра, не дозволяючи для цього стиснення. Наприклад, я через це змінив розташування Host деяких власних даних із 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.