scp

scp is the command-line tool included with the OpenSSH suite of tools, it is designed to securely transfer files to and from remote hosts.

Compression

If you add the following to ~/.ssh/config your files will be compressed in-transit which will reduce the amount of data which is required to transfer

Host *
    Compression      yes
    CompressionLevel 4

Cipher Choices

ssh and scp both support a large number of ciphers, which are used to encrypt your content over the network. You can see the ciphers enabled in your copy of OpenSSH by running "man ssh_config".

For my personal Debian GNU/Linux machine I see the following ciphers are supported:

To choose a particular cipher run:

$ ssh -o Cipher=arcfour user@host.example.com

or

scp -o Cipher=arcfour local-file user@remote.example.com:

The different ciphers have different performance characteristics, and you can test the timings if you have a large file named test.img by repeatedly copying the file to a remote host using a different cipher each time:

$ for i in aes128-cbc arcfour ; do time scp -o Cipher=$1 test.img user@remote.example.com: ; done

For my personal systems the following were rough timings:

So for my particular setup it seems that arcfour is the fastest cipher to choose. (For reference disabling compression increased the time to transfer my sample file to over 30 minutes!)

 

Optimizing

Testing