How To Setup a Linux (Ubuntu) Server On Hetzner
3 min read

I have had some different services to host linux servers, but I always keep coming back to Hetzner. They offer great support, are among the cheapest, have an awesome API and host close to me in Europe.

Getting started

First of, head over to their web page to create an account. Once signed in, go to their cloud console.

Create server

cloud console hetzner

It might look something like this, create a new project or go to an existing one if you already have one, press the Add Server button to create your server.

Choose location, what kind of image you want to have (I’ll go with Ubuntu for this guide).

create server location

There are several different types of servers, depending on your needs. You’ll see their prices and details in the table. I’ll just go with the cheapest on, CX11 for now.

create server image

Create SSH key

I’ll skip features like Volume, Network, Firewall and Backups in this guide. It’s not necessary to get started. You’ll probably want to add a SSH Key for easier access though.

create server ssh key

Create a ssh key on your local computer with the following command. Save it to the standard location and use a password if you want to.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

We will need to copy the content of the public SSH key to our Hetzner server.

cat ~/.ssh/id_rsa.pub

Print the content and copy it to use it in Hetzner.

hetzner ssh key

Access the server

Name your server and press Create & Buy Now at the bottom. You’ll see the price at the bottom as well. You’ll see your server being created, it might take a few seconds. Click on it to access the console.

servers hetzner

To get the root password, press the Rescue button on the menu and select Reset Root Password.

rescue hetzner

Save your new root password. We will need it to sign in.

Go to your terminal and use the following command to access your server via SSH (you can get your IP address the the cloud console for your server, at the top, called IPv4).

ssh root@<ip-address>

This allows you to sign in to your root account. Finally, we just need to create a new account that you can sign in to instead of the root user. When signed in to the remote server, add the following commands.

# add user
adduser <name>

# add to sudo group
usermod -aG sudo <name>

# test if it works
su - username
sudo ls -la /root

That’s it, you should now have a working remote Linux server. Access it with your new user like this.

ssh <name>@<ip-address>