ssh-keygen works for root only?

Does ssh-keygen -t rsa work if only set for root user

i.e, if the username on local system is sodium and i generate the key using the above said command and on the remote system if i place the key in /root/.ssh authorized_keys ,this works.

But on the remote system if the key is placed in /home/natrium/.ssh authorized_keys

This still prompts for a password.Is this the expected behavior or is that some thing wrong in the above procedure

Thanks..


Solution 1:

Check permissions on the remote system:

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

There is a tool that could be installed in your dist (ubuntu/debian has it) called: ssh-copy-id which will do this for you:

$ ssh-copy-id <remote>

If that doesn't work try ssh with option "-v" to see more verbose messages.

Long version:

#From client to server
client$ scp ~/.ssh/id_rsa.pub remote_server.org:

# next, setup the public key on server
server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
server$ rm ~/id_rsa.pub

Solution 2:

Check permissions from ~sodium/.ssh/authorized_keys all the way to /. If any of these are world writable ssh keys won't be trusted.

Run ssh-keygen as the user for whom you need the key. It should be run on the system to which you will be connecting.

ssh-copy-id will copy ids from the target machine to the machine on which you wish to use the key.