I am trying to create a server setup script. On initialization of the server, I add my ssh key which then gives me access to the root user via ssh. I now have created another user and gave them sudo access. Now I am trying to figure out how I can copy my SSH key from root user to the new user I just created. Both users are on the same machine and one is root and the other is a sudo user.


This is just one of a few different ways to do this. I am assuming you've just created your user and it has sudo access.

  1. Create the folder if it doesn't already exist:

    mkdir /home/$USER/.ssh

  2. Make the directory only executable by the user:

    chmod 700 /home/$USER/.ssh

  3. Copy the authorized_keys file that contains your public key:

    sudo cp /root/.ssh/authorized_keys /home/$USER/.ssh/authorized_keys

  4. Make everything in .ssh owned by your user:

    sudo chown -R $USER:$USER /home/$USER/.ssh

  5. Make it readable only by your user:

    sudo chmod 600 /home/$USER/.ssh/authorized_keys

If your user does NOT have sudo access, you can modify this workflow a bit. Using your user name instead of <user>, run these as root:

mkdir /home/<user>/.ssh
chmod 700 /home/<user>/.ssh
cp /root/.ssh/authorized_keys /home/<user>/.ssh/authorized_keys
chmod 600 /home/<user>/.ssh/authorized_keys
chown -R <user>:<user> /home/<user>/.ssh
  • Awesome, thank you very much it worked like charm. Thank you for your time and response! – Doobie Mar 18 '20 at 5:08
  • Great, glad to be able to help – Kurankat Mar 18 '20 at 5:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.