It wont work if you just copy/append the public key to remote server's ~/.ssh/authorized_keys. The wrong thing here is when you generate public key it will make one with username root instead of the real user's name since the UID is 0. The hack to be done to fix this is just change the username at the end of the public key in authorized_keys at remote server.
. Change the username entry of Public key at remote location in authorized_keys from root to USER. If you have a single entry in authorized_keys you can run the below command. Otherwise open it in an editor and replace the ROOT with USERNAME for the specific key.
# sed -i 's/root/USER/g' /home/USER/.ssh/authorized_keys
Other general things to be taken care in SSH key mechanism are
· Set user and group of /home/USER to USER
# chown USER.USER –R /home/USER
· Changed the permission of /home/USER/.ssh to 700
# chown 700 /home/USER/.ssh
· Changed the permission of all files under /home/USER/.ssh to 600
# chmod go-rwx /home/USER/.ssh/*
· Use ssh –i /home/USER/.ssh/id_rsa option for password less authentication
· Restart SSHD.