public key always asking for password and keyphrase
Thats because your private key is encrypted...
You can add your key to an ssh agent using ssh-add
or remove the passphrase (and with it the encryption) from the key using the following command:
ssh-keygen -p -f /root/.ssh/id_dsa -N ''
EDIT
Oh I just realized that you try to use your public key to authenticate... You want to use the private key there:
ssh -v -i /root/.ssh/id_dsa [email protected]
And just to make absolutely sure, the content of the file id_dsa.pub
goes into ~backup/.ssh/authorized_keys
on the webserver. You can use the following command to do that automatically
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
This happened to me when the private key I had was not in OpenSSH format.
I originally generated my key on windows using PuttyGen and was getting bounced with this same thing.
I was able to fix it by loading the key in PuttyGen and clicking "Conversions" to get it to OpenSSH format.
There are a few things.
Primarily, if the KEY is asking for a password, the key was generated with it. Secondly, if the system is prompting for a password after, then the key is not authenticating. Meaning, you will need to regenerate your SSH key (or change it as suggested by @rbtux) and fix the authorized_keys files.
ssh-keygen -t {dsa|rsa} -b {1024|2048|4096} -C "optional comment" -f id_examplekey
The items in curly brackets are options, type and bit size (To state the obvious: dsa > rsa, 4096 > 1024 - in terms of "security").
Then you need to add the public key (.pub) to the authorized_keys
and authorized_keys2
files (it's a common misconception to say the .pub is for local use, however it is intended to be compared against) So in the server's .ssh
folder.
$ cat id_examplekey.pub >> authorized_keys{,2}
Then on your end, you should make sure the key permissions are chmod 600 id_example
and to alleviate typing all that, you can set up the config file: ~/.ssh/config
on your local box (that is a skeleton, you can customize this a ton):
Host example.com
User WHATEVERNAME
IdentityFile ~/.ssh/id_examplekey