If you are ssh’ing constantly to a lot of boxes using long ssh commands with many switches, you are doing it wrong. Make your life easier with the ssh config file ~/.ssh/config.
Host home home.example.com HostName home.example.com User j Port 12345 LocalForward 45901 localhost:5901 LocalForward 40080 localhost:80
Now all you need to do is “ssh home” and it will connect using those options. That easy. All the options can be found in ssh_config(5)
Better yet, the Host option can contain wildcards, so you can set common options for sets of domains. I use it extensively when logging in to Amazon EC2 machines.
Host *amazonaws* IdentityFile ~/.ssh/your_ec2_key.pem User root
Now all you need to do is “ssh blah-1-2-3-4.ec2.amazonaws.blah.com” and it will connect using your EC2 private key as root.
Another great usage is if you constantly vnc in to your home computer remotely through ssh tunnels. Usually you set up a ssh with a local forward, then fire up vnc manually. Well now you can do it in one command.
Host remote Hostname home.example.com User someuser Port 12345 LocalForward 59999 localhost:5901 ExifOnForwardFailure yes PermitLocalCommand yes LocalCOmmand vncviewer localhost:59999 &>2 &
So now you just simply type “ssh remote” and it will set up the tunnel and pop up the vnc window. Enjoy!