My personal preference is just to write an Ant script for this purpose. There are several tasks that make it fairly easy. The scp, sshexec tasks are best. But, keep in mind that sshexec doesn't start a shell! It just executes a command so you don't have a current working directory, environment variables, no variable substitution, etc that the shell provides you. You CAN use this trick to pass variables from your client to the server doing something like this:
How to use SSH to run a shell script on a remote machine?
That helps with keeping your script somewhat environment/machine neutral. So use scp to push your package up to the server, then use sshcommand to deploy it with a unix script to copy it out, restart tomcat, etc.