How to create a sudo user on Ubuntu and allow SSH login

Chi Thuc Nguyen
2 min readAug 7, 2019

The sudo command is used to allow a permitted user to execute a command as the superuser or another user, as specified by the security policy.

In this guide, I will show you how to create a new user on an Ubuntu server and give it sudo access and allow SSH login to that user.

Create a sudo user

1. Log in to your server as the user with superuser privilege

$ ssh root@server_address

2. Create a new user account

For this, we use adduser command. Don’t be confused with the useradd command here. useradd is a low level binary command compiled with the system, whereas adduser is a high level Perl script built on top of useradd.

You should always use adduser to create new user as it provides more user friendly and interactive procedure.

$ sudo adduser newuser

Then follow the instruction to finish the procedure

Adding user `newuser' ...
Adding new group `newuser' (1005) ...
Adding new user `newuser' (1004) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
Full Name []: Thuc Nguyen
Room Number []: 1234
Work Phone []: 0123456789
Home Phone []: 0987654321
Other []:
Is the information correct? [Y/n] Ysudo

3. Add the user to the sudo group

$ usermod -aG sudo newuser

On Ubuntu, members of the sudo group have sudo privileges by default.

4. Test

  • Switch to the new user account
$ su - newuser
  • Verify the superuser privileges by the sudo command
$ sudo ls -la /root

Add public key to allow remote SSH login for the new user

1. Switch to the new user account

$ su - newuser

2. Create .ssh folder in home directory

$ mkdir ~/.ssh

3. Create authorized_keys file in side the .ssh folder and add the public key

Use your favorite text editor for this. I use vim here, for example:

$ vim ~/.ssh/authorized_keys

And paste your SSH public key here, save and close file

4. Verify SSH remote login

Open another terminal on your machine and try to remote SSH login using new user.

$ ssh newuser@server_address

This should work if you have your SSH private key in ~/.ssh/id_rsa file, otherwise you must specify the path to your private key with -i option:

$ ssh -i path_to_your_ssh_private_key newuser@server_address

If you can login successfully, congratulations!

--

--