This is how to sync your home directories between haybaler and baconhouse. For purposes of documentation I'm assming your are starting on haybaler althought it will work in either direction (just change the hostnames below).

Create a new RSA|DSA key with no passphrase. *IT MUST HAVE THE DEFAULT KEY NAME (ie identity or id_dsa)*

 ssh-keygen

Copy the new key to baconhouse:

 scp ~/.ssh/< identity.pub | id_dsa.pub > < userid >@baconhouse.sackheads.org:~/.ssh/newpub

Sign onto baconhouse:

 ssh < userid >@baconhouse.sackheads.org

Edit the new pubkey

 cd .ssh
 vi newpub

 (RSA keys begin with 1024, DSA keys begin with ssh-dss)
 Insert command="unison -server" at the begining of the key ie:
 command="unison -server" 1024 35 < long encryption key > < userid >@< sourcehost >
 command="unison -server" ssh-dss < really long encryption key > < userid >@< sourchehost >

 Save and exit

cat the new key into either authorized_keys or authorized_keys2 (depending on RSA/DSA)

 cat newpub >> authorized_keys

exit back to haybaler

ssh to baconhouse to insure unison will run (you should not be prompted for a passwd)

 ssh < userid >@baconhouse.sackheads.org

 output should read:
 Unison 2.someversion

Create a .unison directory

 mkdir ~/.unison
 cd ~/.unison

Create a unison profile for sync'ing your home directory

 vi home.prf

Insert the following:

# Unison configuration
batch = true

# Roots for synchronization
root = /home/< userid >
root = ssh://baconhouse.sackheads.org//home/< userid >

# What to ignore (these are examples and *should* be modified)

ignore = Path html/bin
ignore = Path Mail/spam
ignore = Path .ssh

Explanation of options:

batch: run in batch mode (don't ask questions)
root: root directory for replication. (In order to use absolute paths the // is required. otherwise a single / is relative pathing).
ignore: ignore any files in the following path

Start unison

 unison home
(home is the name of the profile created above)

This will sync your home directory.

More information can be found about usison at:
http://www.cis.upenn.edu/~bcpierce/unison/manual.html

Note on using unison and cron

On haybaler when executing a cronjob /usr/local/bin is not included in the path. Because of this unison will fail with a message stating that remoted connection has failed. In order to work around this create a shell script that adds /usr/local/bin to the path then runs unison.