sudo stands for either “superuser do” or “switch user do“, and sudo users can execute commands with root/administrative permissions, even malicious ones. Be careful who you grant sudo permissions to – you are quite literally handing them all access to your instance.
1. Creating a sudo user
a) ssh in to your server as the user with superuser privilege or as a root user
ssh -i key.pem root@server_ip_address
b) Create a new user
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 []: Rajesh Kumar
Room Number []: 12345
Work Phone []: 0123456789929
Home Phone []: 0000002222002
Other []:
Is the information correct? [Y/n] Ysudo
c) Add the user to the sudo group
usermod -aG sudo newuser
d) Test new user
su - newuser
Verify the superuser privileges by the sudo command
sudo ls -la /root
2. Add public key to allow remote SSH login for the new user
Generate ssh key pair in your local system for the newuser using “ssh-keygen -t rsa” in linux or using putty-gen in windows.
a. Switch to the new user account
su - newuser
b. Create .ssh folder in home directory
mkdir ~/.ssh
c. Create authorized_keys file inside the .ssh folder and add the public key
vi ~/.ssh/authorized_keys
And paste your SSH public key here, save and close file.
d. Verify SSH remote login
Open another terminal on your machine and try to remote SSH login using new user.
ssh -i /path/to/your/ssh_private.key newuser@server_ip_address