题 SSH压缩


我想在我的ssh隧道上进行最大压缩,因为我在拨号线上;)

在手册页上可以看到:

CompressionLevel                .....值的含义与gzip(1)中的含义相同。请注意这一点                选项仅适用于协议版本1。

如果我想要最大压缩率并且在使用ssh版本2时怎么办?

怎么知道我正在使用的协议版本?


5
2018-05-13 14:23






答案:


要了解ssh的协议版本,您可以包括 -v ssh命令中的选项。

要请求压缩,您可以使用 -C 选项。这应该适用于协议版本2。


1
2018-05-13 14:37



但是CompressionLevel选项怎么样?我不想使用默认级别6,但是9 cos我已经过了diulup连接。 - gsi-frank
@frankabel:据我从手册中了解,你只能设置协议版本1的压缩级别,但我不确定。 - Khaled
坏消息,这里 lists.mindrot.org/pipermail/openssh-unix-dev/2003-November/... 我发现ssh2的能力低于ssh1对压缩配置的影响。 - gsi-frank
在我看来如果想要使用max compression level(9),我必须使用ssh 1而不是ssh 2 - gsi-frank
只需将其保留为默认值并使用ssh2。差别不大,使用v2获得的安全性是值得的。 - Bill Weiss


根据您的使用情况,您可能希望使用管道以实现某些流的更高压缩级别。

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

上面的例子压缩了远程端的字符串/流(gzip)并在当地收到后将其解压缩(zcat)。

请注意,ssh的压缩是  意图。仅使用管道的压缩。

您可以使用其他压缩工具 bz2 要么 xz 同样。考虑各自的绩效影响。

注意: 看起来,如果压缩使用非常慢的算法,则流可能无法及时传递并且连接“关闭”并出现错误。


3
2018-04-04 14:48