How to install your own Ubuntu 20.04 Linux server | Part 7 of 10

linux hetzner cloud virtual server tutorial

In Part 7 of the tutorial we'll install Git and create a CI/CD user with dedicated pipeline ssh keys on our remote server.

It's recommended that you have read the previous steps of this course. You'll find the overview at the end of this blogpost.

Course ingredients:

14. Install Git on Remote Server

Install on remote server:

sudo apt-get update
sudo apt install git 

Check version:

git --version

15. Create CI/CD user and ssh keys for Gitlab on Remote Server

Create CI/CD group and user

First log into your remote server via ssh (see step 3 of this tutorial).

Add a new user called cicd:

sudo useradd -d /home/cicd -m -s /bin/bash cicd -G www-data

-m creates the home directory if it does not exist.
-d overrides the default home directory location.
-s sets the login shell for the user.
-G expects a comma-separated list of groups that the user should belong to in addition to the primary group.

Type in a password, then full name, leave everything else empty and confirm with Yes.

Check for all users on the system

ls /home

Alternatively check with id cicd to see name, gid and groups created.

id cicd

Generate ssh key for Gitlab on remote server

On remote server:

ssh-keygen -t rsa

Enter file path when asked:

Check if keys have been created:

cd /home/cicd/.ssh/

Show public key:


Select the entire key, then copy key with cmd + c

Create the file authorized_keys:

touch authorized_keys



Open file as sudo in nano text editor:

sudo nano authorized_keys

Paste key with cmd + v into the file nano authorized_keys
Save and close nano: ctrl + o, press enter, ctrl + x

You should now see the public key in the terminal:

cat authorized_keys

The Course Syllable:

22.05.2021 – Part 1

  1. Introduction & reasoning

29.05.2021 – Part 2

  1. Create Hetzner Cloud Server
  2. Connect to Server

05.06.2021 – Part 3

  1. Update and upgrade Ubuntu installation and install apache2
  2. Install PHP

12.06.2021 – Part 4

  1. Establish ssh keys
  2. Add new sudo user
  3. Deactivate root user
  4. Make new sudo user owner of ssh service

19.06.2021 – Part 5

  1. Buy Domain and point it to Hetzner Server
  2. Create Virtual Host for domain

26.06.2021 – Part 6

  1. Get free Let's Encrypt SSL certificates
  2. Request certificate, active https and force SSL

03.07.2021 – Part 7

  1. Install Git on Remote Server
  2. Create CI/CD user and ssh keys for Gitlab on Remote Server

10.07.2021 – Part 8

  1. Create Gitlab Repository
  2. Establish ssh keys and configure CI/CD

17.07.2021 – Part 9

  1. Install MySQL
  2. Install phpMyAdmin

24.07.2021 – Part 10

  1. Summary of project development workflow
  2. I'll be back – The course update log

See you next week for more


Previous Post Next Post

This site uses cookies to store information on your computer. Some of these cookies are essential, while others help us to improve your experience by providing insights into how the site is being used. ×
Necessary Cookies

Necessary cookies enable core functionality such as page navigation and access to secure areas. The website cannot function properly without these cookies, and can only be disabled by changing your browser preferences.

Analytical Cookies

Analytical cookies help us to improve our website by collecting and reporting information on its usage.

Marketing cookies

We use marketing cookies to help us improve the relevancy of advertising campaigns you receive.