Does SSH use any compression?
No and yes. Kind of. Which is to say, it supports compression (zlib or zlib-ish, as I recall), but a stock copy of OpenSSH does not have it enabled by default, though some distributions may enable it by default (I don't think Ubuntu does).
See man ssh_config
for details. You're looking for the Compression
and CompressionLevel
options, which you can then set in /etc/ssh/ssh_config
.
Note that there's also a Compression
option for the server side in sshd_config
which determines if compression is allowed (it is by default). Again, see man sshd_config
for details.
You can also turn compression on on a per-session basis by using the command line option -C
.
Note that compression can actually have a slightly negative performance impact if the connection between you and the server is fast (e.g. on the same LAN or just on really good internet connections) or one or both sides has a slow CPU (compression eats a fair bit of CPU time).
These days, for most people, I'd suggest using it only as needed. Typically for links of less than 5-10mbps and only when passing a lot of bulk data (transfers of not-already-compressed files, X11 or VNC forwarding, things like that).
You can turn on gzip compression on any SSH. Put Compression yes
into your ~/.ssh/config
, and it should work. Alternatively, try running ssh
with the -C
option.
From the ssh man page (type man ssh
to see the whole thing):
-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.
So just change:
ssh hostname
to:
ssh -C hostname