Назад | Перейти на главную страницу

Сжатие SSH

Я хочу максимальное сжатие в моем ssh-туннеле, потому что я нахожусь на телефонной линии;)

На странице руководства можно прочитать:

CompressionLevel ..... Значение значений такое же, как в gzip (1). Обратите внимание, что этот параметр применим только к версии протокола 1.

Что делать, если мне нужна максимальная степень сжатия при использовании ssh версии 2?

Как узнать версию протокола, которую я использую?

В зависимости от вашего варианта использования вы можете использовать конвейеры для достижения более высоких уровней сжатия для определенных потоков.

ssh ${SSH_USER}@${SSH_HOST} "
    echo 'string to be compressed' | gzip -9
" | zcat | echo -

В приведенном выше примере выполняется сжатие строки / потока на удаленной стороне (gzip) и распаковывает его при получении на локальной стороне (zcat).

Обратите внимание, что сжатие ssh выключен по намерению. Используется только сжатие трубы.

Вы можете использовать другие инструменты сжатия, например bz2 или xz также. Учитывайте их соответствующее влияние на производительность.

НОТА: Похоже, что если сжатие использует очень медленный алгоритм, поток может не доставить вовремя, и соединение «закрывается» с ошибкой.

Чтобы узнать версию протокола ssh, вы можете включить -v в вашей команде ssh.

Чтобы запросить сжатие, вы можете использовать -C вариант. Это должно работать даже для версии протокола 2.