9/10 veces es porque ~/.ssh/authorized_keys no está en el modo correcto.
chmod 600 ~/.ssh/authorized_keys
Ingrese a /etc/ssh/sshd_config para permitir la autenticación con una clave. Debería tener algo como esto y asegúrese de que las líneas no estén comentadas:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PD:no olvide reiniciar sshd después de modificar el archivo (/etc/init.d/sshd restart)
Descubrí que con mi sistema el problema era que el directorio de usuario (/home/username) estaba equipado con un conjunto de permisos incorrecto. Era drwxr-x-w-
y tenía que ser drwxr-xr-x
(con permiso de escritura solo del propietario). La solución fue usar chmod:
sudo chmod 0755 /home/username