Linux Booting Screen

SSH-Zugriff auf Linux-Server mit Key einrichten & absichern

Mit einem SSH-Key lässt sich der Zugriff auf einen Linux-Server vereinfachen und zugleich sicherer gestalten. Ich beschreibe hier, wie man einen SSH-Key(-Paar) erzeugt und auf einem frischen Linux-Server einen hinterlegt sowie absichert.

Client wie Server basieren auf Ubuntu 20.04.

SSH-Key erzeugen

Zunächst generieren wir auf dem Client einen SSH-Key:

~$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/myuser/.ssh/id_ed25519): .ssh/mykey 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in .ssh/mykey
Your public key has been saved in .ssh/mykey.pub
The key fingerprint is:
SHA256:uQ0IG0JZW5WDzkembQkEIF8mrJk6M4jCIzbjyo7Xxxw myuser@mypc
The key's randomart image is:
+--[ED25519 256]--+
|..++=ooo..       |
| +o+ oo =        |
| +o +o * o       |
|+  . ++.=.       |
|=   . .oS        |
|X*    E  +       |
|=++. o .. .      |
|o.. . +          |
|=+   .           |
+----[SHA256]-----+

Das Standard-Verzeichnis für SSH-Keys unter Linux ist der Unterordner .ssh im Home-Verzeichnis.
Ein Key-Paar besteht aus einem privaten Schlüssel, der nur bei Dir verbleiben und nicht weitergegeben darf, und aus einem öffentlichen Schlüssel, der auf dem Server hinterlegt wird und an der Dateiendung .pub (für public) gut erkennbar ist.

Server konfigurieren

Zuerst loggt man sich auf dem Server per SSH ein:

~$ ssh root@[server-ip]
root@[server-ip]'s password:

Im Anschluss daran legt man einen User an:

~# adduser myserveruser

Und damit der User dann auch über (administrative) Root-Rechte verfügt, muss man ihn noch zum Mitglieder der sudo-Gruppe machen:

~# adduser myserveruser sudo

Jetzt beendet man mit einem exit die Verbindung zum Server als root und kopiert den öffentlichen SSH-Key:

~$ ssh-copy-id -i .ssh/mykey.pub myserveruser@[server-ip]

Danach kann man sich ganz normal mit dem SSH-Key auf dem Server einloggen:

~$ ssh -i .ssh/mykey myserveruser@[server-ip]
Enter passphrase for key '/home/myuser/.ssh/mykey': 

Nun ist mit den SSH-Keys mit dem Server verbunden. Zum Abschluss wird noch die SSH-Konfiguration abgesichert. Dazu köffnet man die SSH-Konfigurationsdatei:

~$ vi /etc/ssh/sshd_config
[sudo] password for myuser: 

Nun sucht man die beiden Konfigurationen heraus und setzt sie jeweils auf no:

PasswordAuthentication no
PermitRootLogin no

Damit die Einstellungen greifen, muss man den SSH-Service noch einmal neu laden:

~$ sudo systemctl reload sshd.service

Fertig!

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert