it-swarm.cn

SSH是否使用任何压缩?

我很好奇,SSH在发送/接收数据之前是否压缩了它的数据?如果它没有默认,那么它可以打开吗?

43
Ivan

不,是的。的种类。也就是说,它支持压缩(zlib或zlib-ish,我记得),但是默认情况下OpenSSH的库存副本没有启用它,虽然某些发行版可能默认启用它(我不认为Ubuntu会这样做) )。

有关详细信息,请参阅man ssh_config。您正在寻找CompressionCompressionLevel选项,然后可以在/etc/ssh/ssh_config中设置这些选项。

请注意,sshd_config中的服务器端还有一个Compression选项,用于确定是否允许压缩(默认情况下是这样)。再次,请参阅man sshd_config了解详细信息。

您还可以使用命令行选项-C在每个会话的基础上打开压缩。

请注意,如果您和服务器之间的连接速度很快(例如在同一个局域网上,或者只是在非常好的情况下),压缩实际上可能会产生轻微负面性能影响互联网连接)或一方或双方都有一个慢CPU(压缩占用相当多的CPU时间)。

这些天来,对于大多数人来说,我建议只在需要时使用它。通常用于小于5-10mbps的链接,并且仅在传递大量批量数据时(传输未经压缩的文件,X11或VNC转发,类似的事情)。

48
Nicholas Knight

您可以在任何SSH上启用gzip压缩。将Compression yes放入~/.ssh/config中,它应该有效。或者,尝试使用-C选项运行ssh

23
evgeny

从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
8
rjmunro

最简单的原因是在cli上使用-o选项。它也可以与任何配置选项一起使用,例如

ssh -o "Compression no" -v <Host>
# or
ssh -o "Compression yes" -v <Host>
0
krad

您可以使用-C打开压缩,但如果不允许服务器通过不允许对此进行压缩而不允许服务器使用内核电源,则它将无法工作。例如,我做了,因此,将一些自己的数据的主机位置从Strato更改为我的服务器。我认识到它是因为使用了慢速2Mbit下载和0,3Mbit上传连接,并且确实根据压缩级别检查了速度差异,因为更高级别并不总是更快,因为它会降低处理器能力或服务器功率。
但在我的情况下,它做得很好,因为它缩短了所需时间到之前的第6个时间。

0
Andreas Bartels