IP address conflict turned out to be the root cause when I was seeing this SSH error message.
After reading the answers above I suspected an IP address conflict, but needed to prove that address conflict was or was not the problem.
This great article showed how to use arp-scan to see if two pieces of hardware were claiming the same IP address.
In my case the server machine had a static ip address of 192.168.1.42, I used arp-scan to check that address:
$ sudo apt-get install arp-scan$ arp-scan -I eth0 -l | grep 192.168.1.42 192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown) 192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)
Sure enough there was a conflict, as shown above. Then I ran arp-scan without the grep, found that .43 was available, went and edited /etc/network/interfaces
and changed the static ip from .42 to .43