Fast SSH file transfers with HPN patches
This is a common problem: you have some big files (for example a disk image) to transfer over a Gigabig Ethernet link and it takes too much time with SCP/SFTP . Also you probably don’t want to bother installing an ftp server, then what’s the answer?
It’s called HPN-SSH and it’s a patchset you can apply on top of ssh. Is basically provides dynamic window, the none cipher and the multi-threaded MT-AES-CTR cipher. Obviously with the none cipher you will get no encryption, but that’s not a problem for a point-to-point Gigabit Ethernet link.
First I tested the maximum network speed I can achieve using FTP: 111.5 MB/s (0.87 GB/s)
1706560496 bytes received in 14,6 secs (1,1e+05 Kbytes/sec)
Then I tested the speed with SCP and the none cipher: 95.7 MB/s (0.75 GB/s)
scp -4 -o NoneSwitch=yes -o NoneEnabled=yes /mnt/ram/big root@<ip>:/mnt/ram/big
Finally the speed with SFTP and the none cipher: 81.4 MB/s (0.64 GB/s)
sftp -4 -o NoneSwitch=yes -o NoneEnabled=yes root@<ip>
I used a random generated 1.6 GB file for the tests, also all transfers are from ram to ram to avoid disk bottlenecks.
mount -t ramfs -o size=1640m ramfs /mnt/ram
If you use Debian Squeeze amd64 you can easily install SSH-HPN using my repository. Then add the following to your /etc/apt/preferences (replace at and dot)
Package: openssh-client openssh-server
Pin: release o=Niccolo Belli <darkbasic(a.t.)linuxsystems(d.o.t.)it>
Pin-Priority: 1001
To allow the use of the none cipher add NoneEnabled yes to your /etc/ssh/sshd_config, then restart ssh.