9 volte su 10 è perché ~/.ssh/authorized_keys non è nella modalità corretta.
chmod 600 ~/.ssh/authorized_keys
Effettua il check-in in /etc/ssh/sshd_config per consentire l'autenticazione con una chiave. Dovresti contenere qualcosa del genere e assicurarti che le righe non siano commentate:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PS:non dimenticare di riavviare sshd dopo aver modificato il file (/etc/init.d/sshd restart)
Ho scoperto che con il mio sistema il problema era che la directory utente (/home/username) era dotata del set di autorizzazioni sbagliato. Era drwxr-x-w-
e doveva essere drwxr-xr-x
(con permesso di scrittura solo per il proprietario). La soluzione era usare chmod:
sudo chmod 0755 /home/username