This article takes a lot of information from the tutorial here https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04. It is a good read, however, I am going to list the steps on the site as well, so you can just follow along here.

Now we need to connect to your droplet or VPS. To do so, I recommend downloading Putty. If you are running on a modern machine, you most likely have a 64 bit machine, so I recommend downloading all the tool by clicking on putty-64bit-0.70-installer.msi. At this time, the version is 0.70. Once installed, you can utilize putty to connect to your server.

Update Your Server

This first thing you will want to do, is update your machine. You will most likely be logged in as the root user at this time. However, to get used to the sudo command, I will be sudoing everything!

Now, type in the following commands to update your system

sudo apt update
sudo apt upgrade

This will get your server setup to the latest and greatest versions and security fixes. Or at least hope it does 😀

Create New User

In Ubuntu 16.04 it is very easy to create a user. You simple put adduser a space and than the username. In this example, I will be using my name.

sudo adduser joshua

You will be asked a few questions, starting with the account password. Make sure to enter a strong password. You also have the option to fill in any of the additional information if you would like. This is not required and you can just hit ENTER in any field you wish to skip.

Please make sure to remember your password

Set User With Root Privileges

This is a super simple and super easy way to grant your user with SUPER POWERS!

usermod -aG sudo joshua

The -aG in this means Add user to Group sudo then the username in this case joshua. Once logged in as the new user, you can do root privileged stuff by simply saying sudo! Example: sudo apt update or sudo nano somefile.vue

Add Public Key Authentication

At this point you should already have a public key setup for root. If not, you need to get that done. If you would like, you can create a new key. You should still be in root. to switch users within the terminal, you can type in this:

su joshua

This will log you into that user joshua, of course you will want to log in with your user you created. Logging in to the new user you can then generate a new key for that user specifically. You do not need to do this, unless you will be setting up git, and want to connect to github or gitlab or bitbucket or whatever git repo you use. (Hopefully you use git and not SVN…) To generate a key you can run this command.

ssh-keygen

Just follow the prompts. if you have some trouble, post in the comments below and I will help you out! Now you will have your private key setup at ~/.ssh/id_rsa and public key will be at ~/.ssh/id_rsa.pub.  You can then plug your public key into your git repo so you have access. You can output the key by running cat ~/.ssh/id_rsa.pub

A ~ means users root directory. This is set in a user file, but is defaulted to /home/joshua/ where joshua is your username you are logged into. If you are logged into root, it would be a different folder. If logged into user greg, it would be /home/greg/

You are now going to want to add your key that you login with the server to your new user, so instead of logging in as root and running su joshua to switch to that user, you can log directly into you user. I would first check and see if the file authorized_keys exists, if not we can create the file. To check to see if the file exists simply run:

ls ~/.ssh/

If you see authorized_keys as one of the files, then it already exists and you can skip the creation of the file. To create the file run this:

touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

To edit and put in your ssh key you can edit the file by running:

nano ~/.ssh/authorized_keys

Add your key and save. I always hit CTRL + X hit Y hit ENTER. This should save the file.

Disable Password Authentication

This part is if it isn’t already disabled. Edit the SSHD config file:

sudo nano /etc/ssh/sshd_config

Set the following settings:

PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no

Now restart SSHD

sudo systemctl reload sshd

At this point I would test logging into the user using putty. If all is successful, you can now celebrate that you have done all the boring stuff.

Part 4’s link will appear here once article is published! It will be a simple run down on Setting up your firewall. Need to keep those hackers out.

~Joshua