With AuthorizedKeysFile /root/.ssh/authorized_keys
, you are telling sshd
to go look for the key in /root/.ssh/authorized_keys
for whomever is trying to connect. That can't work for anyone else than root. You should stick to the default of ~/.ssh/authorized_keys
The key pair can be generated anywhere. Simply, the public key should be present on the server to which you want to connect, and the private key on the client form which you are connecting.
The permissions are pretty messed up. They should look like:
drwx------- .ssh
-rw------- authorized_keys
-rw-r--r-- known_hosts
authorized_keys
should be a file, not a directory.
Also, make sure the permission of the private key are be -rw-------
.