>A route add command is not persistent past a reboot or network restart.

It seems to have been. I rebooted and still can't ssh from the laptop to the ubuntu.
 
Mike, ONE of your systems is on your Wireless and the other is on the wired?  Sometimes wireless to wired connections take longer than the timeout values for ssh or scp.  Try putting them both on either wireless or wired and see if that's more successful?

okay.... I just connected the laptop to the router via a wire but it still times out
 
Timeouts could be why you get a no route to host. 

Verify that both boxes have a default route:

# sudo netstat -rn

Kernel IP routing table <print server>
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

Kernel IP routing table <laptop>
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0


Verify that both boxes have a listening ssh daemon:

# sudo netstat -antp | grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      433/sshd 
<ubuntu>
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      12243/smbd     
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      12243/smbd
<laptop>


Make sure you haven't installed DenyHosts or iptables that limits your connections:

# locate Deny |more
# sudo iptables-save |more

sudo locate Deny|more <------------------no respose
sudo locate iptables-save|more
  /sbin/iptables-save
  /usr/share/man/man8/iptables-save.8.gz
 
What - are you running ddclient for?
If you can't properly resolve DNS, you will not be able to ssh:

I don't even know what ddclient is.
It must have been started automatically by something.
 

I went to the link and found nothing regarding the ddclient warning. It was only mentioned in the output of a  poster tail command.

 
Add this to /etc/hosts.allow:

  /etc/hosts.allow looks:

ALL : 127.0.0.1
sshd : 192.168.0.0/24, 78.207.132.32

This example shows an external address you might want to use to connect from outside your internal network (once you open or port forward port 22).

This is the hosts.allow file that I added. Does this look right?

ALL : 127.0.0.1
sshd : 192.168.0.0/24, 192.168.0.1/24, 192.168.0.2/24, 192.168.0.3/24, 192.168.$ <this goes on to x.y.z.10/24>
#shows address to use from outside of network#, 78.207.132.32

No, you need that 78.207.132.32 on the SAME line with either ALL or sshd: or commented out.

And 192.168.$ might cause problems.  Change it to a safe entry: <-------that wa snly mores output to say there was more to it. it goes on to x.y.z.10/24>.... oh. now I see the error of my ways. 192.168 is in the /16 network. silly me!
############cut here############
ALL : 127.0.0.1
sshd : 192.168.0.0/16, 78.207.132.32
###########end ###############

What is that 78.207.132.32 anyways? I know you say it is to connect to my network from elsewhere but how would I do that? would it be ssh 78.207.132.32:<user>@<computer>?
 
make is already its current version
 
# sudo apt-get update <-------------it still says it is the newest version


Also setup your /etc/hosts file on both servers following these suggestions:
http://linux.about.com/od/commands/l/blcmdl5_hosts.htm

Should look like this (except with all your hostnames on your network - be sure to put the same one on all your linux boxes):
 127.0.0.1       localhost
 192.168.1.10    foo.mydomain.org       foo
 192.168.1.13    bar.mydomain.org       bar
already done (file existed with the proper information.