SSH 是否使用任何压缩?

Iva*_*van 51 ssh

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

Nic*_*ght 56

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

详情请参阅man ssh_config。您正在寻找CompressionCompressionLevel选项,然后您可以在/etc/ssh/ssh_config.

请注意,Compression服务器端还有一个选项,用于sshd_config确定是否允许压缩(默认情况下)。再次,查看man sshd_config详情。

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

请注意,如果您和服务器之间的连接速度很快(例如,在同一个 LAN 上或只是在非常好的互联网连接上)或者一方或双方的 CPU 速度较慢(压缩会吃很多东西),那么压缩实际上会对性能产生轻微的负面影响CPU 时间)。

现在,对于大多数人来说,我建议仅在需要时使用它。通常用于小于 5-10mbps 的链接,并且仅在传递大量批量数据时(传输尚未压缩的文件、X11 或 VNC 转发等)。

  • sshd_config 中的压缩可以是“是”或“延迟”。“延迟”更安全,因为 zlib 漏洞不会暴露你,所以它是默认值,但一些像 Tunnelier 这样的旧客户端只支持“是”。http://www.openssh.com/txt/release-4.2 (2认同)

evg*_*eny 30

您可以在任何 SSH 上打开 gzip 压缩。放入Compression yes您的~/.ssh/config,它应该可以工作。或者,尝试ssh使用该-C选项运行。


rjm*_*nro 12

从 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.
Run Code Online (Sandbox Code Playgroud)

所以只需更改:

ssh hostname
Run Code Online (Sandbox Code Playgroud)

到:

ssh -C hostname
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用的是 Windows,则可以在 PuTTY 中启用此选项:连接 -> SSH -> 协议选项 -> 启用压缩。 (2认同)