A few suggestions:
SCP'ing the public key directly to ~/.ssh/authorized_keys could overwrite the file if it already exists. It's better to use 'ssh-copy-id', which takes care of everything for you. Most distros should have it already.
Autossh can take care of setting up, monitoring, and restarting the tunnels for you. Arguments are almost exactly the same as ssh, just toss it into your crontab and have it run @reboot.