SSH Tunnel slow

puttysshtunneling

I just moved halfway across the globe and am having a strange connection issue. I have a 4 Mbps dsl connection, can successfully ssh into my server, and setup a tunnel. I use PuTTY (on my desktop – PC) and Terminal (on my mac). The speed from my desktop is getting on average 0.5 Mbps. If I test the speed direct to the closest server (ie without the proxy/tunnel) to my server however I get the 4 Mbps as advertised.

The only differences are the desktop is on a CAT5 connection and the Mac is wireless through the DSL router. I checked the cable by plugging it into the Mac and it got 4 Mbps to the tunnel. The other Ethernet connections to the router also get the 4 Mbps speed.

Below is the putty.log. I'm not sure if it is the router or the configuration of the putty connection and I'm at a loss after spending 4 hours on Google.

Any help would be appreciated. The server itself is running Ubuntu 10.04.

2011-08-01 14:14:13 Looking up host "x.x.x.x"
2011-08-01 14:14:13 Connecting to x.x.x.x port 22
2011-08-01 14:14:13 Server version: SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu7
2011-08-01 14:14:13 We claim version: SSH-2.0-PuTTY_Release_0.60
2011-08-01 14:14:13 Using SSH protocol version 2
2011-08-01 14:14:14 Doing Diffie-Hellman group exchange
2011-08-01 14:14:14 Doing Diffie-Hellman key exchange with hash SHA-256
2011-08-01 14:14:14 Host key fingerprint is:
2011-08-01 14:14:14 ssh-rsa 2048 aa:bb:cc:dd:0f:a3:1e:06:bc:c8:7d:dd:cc:bb:aa:11
2011-08-01 14:14:14 Initialised AES-256 SDCTR client->server encryption
2011-08-01 14:14:14 Initialised HMAC-SHA1 client->server MAC algorithm
2011-08-01 14:14:14 Initialised AES-256 SDCTR server->client encryption
2011-08-01 14:14:14 Initialised HMAC-SHA1 server->client MAC algorithm
2011-08-01 14:14:15 Reading private key file "C:\key.ppk"
2011-08-01 14:14:17 Offered public key
2011-08-01 14:14:18 Offer of public key accepted
2011-08-01 14:14:20 Access granted
2011-08-01 14:14:21 Opened channel for session
2011-08-01 14:14:21 Local port 1080 SOCKS dynamic forwarding
2011-08-01 14:14:21 Allocated pty (ospeed 38400bps, ispeed 38400bps)
2011-08-01 14:14:21 Started a shell/command

Best Answer

As a general rule for ssh connections/tunnels speed... Putty is single-threaded application, so even on multi-core systems you are limited by a speed of single cpu core. For high speeds, choose fast cipher - Blowfish. Either configure it in putty, or if using commandline ssh, specify ssh -c blowfish ... to use it. Using this, you will be still limited to about max. 10 MB/s on a Gbit local network.

EDIT: It is 2018 now and all current CPUs and operating systems should support HW AES acceleration (AES-NI instruction). So the recommendation with Blowfish applies only to older HW (or slow HW like routers) now. HW accelerated AES gives more than 1 GB/s of encryption rate, so is sufficient for ssh and/or openssl.