HPN-SSH is a patch for OpenSSH designed to eliminate a network bottleneck that typically occurs in an SSH session over high-speed connections. This is accomplished by allowing internal flow control buffers to be defined (and grow) at runtime, rather than statically defining them as OpenSSH currently does (at 64KB). The resulting performance increase can range from 10x to more than 50x, depending on the cipher (see below note), and host tuning.
HPN-patched SSH is fully interoperable with other SSH servers and clients. HPN clients will be able to download faster from non HPN servers, and HPN servers will be able to receive uploads faster from non HPN clients. However, the host receiving the data must have a properly tuned TCP/IP stack.
For more background on HPN SSH, see this presentation and FAQ.
Typical installation procedure:
- Download OpenSSH source from www.openssh.com
- Download corresponding HPN SSH patch from http://www.psc.edu/networking/projects/hpn-ssh
- Uncompress and untar above distributions
- cd openssh-4.6p1
- patch < openssh-4.6p1-hpn.diff
- configure [OPTIONS]
$ ssh -v
OpenSSH_4.6p1-hpn12v16, OpenSSL 0.9.7a Feb 19 2003
$ scp -c arcfour -o -o TCPRcvBufPoll=yes [source] [destination]
* arcfour (RC4) is a more CPU-efficient 128-bit cipher.
* Enabling TCPRcvBufPoll allows for the TCP receive buffer to be polled through the duration of the connection; especially useful in autotuning kernels like linux 2.6 and Microsoft Vista.