public key authentication
UPDATE - using ssh-copy-id is easier. See this page: http://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password
You know you can connect to a host with ssh by typing a password when requested. However it is usually easier, especially for a scripted environment, to run ssh without having to type the password. This also keeps the user password safe.
- on the connecting client, NOT the ssh server host, generate a public/private key pair (don't type a password when asked)
ssh-keygen
- this creates a private key ~/.ssh/id_rsa, and a public key ~/.ssh/id_rsa.pub
- the single line inside the public key file needs copied to a file on the ssh server host at ~/.ssh/authorized_keys
Troubleshooting
If you still get a password prompt, try to correct these items:
- Your home directory ~ and your ~/.ssh directory on the remote machine must be writable only by you: rwx------ and rwxr-xr-x are fine, but rwxrwx--- is no good, even if you are the only user in your group (if you prefer numeric modes: 700 or 755, not 775).
- Your private key file (on the local machine) must be readable and writable only by you: rw-------, i.e. 600.
- Your ~/.ssh/authorized_keys file (on the remote machine) must be readable (at least 400), but you'll need it to be also writable (600) if you will add any more keys to it. I had to make this writable only by root (644) to correct a password prompt issue recently.
Notes
- the authorized_keys file may contain one or more lines for all the hosts that are authorized to connect
- the authorization files are per user on the host, so the appropriate user should hold the authorized_keys file