Anstatt Passwörtern verwenden moderne Linux-Distributionen für den Zugang per SSH ausschließlich SSH-Keys. Dies ist eine wesentliche Verbesserung der Sicherheit und zusätzlich auch deutlich unkomplizierter als das Verwenden von Passwörtern.

Der Vorteil ist, dass ein einziger Schlüssel den Login in alle Systeme ermöglicht, auf die Du Zugriff hast. Der Schlüssel kann natürlich auch auf mehreren Geräten gleichzeitig verwendet werden (z.B. Laptop und Desktop-PC). Alternativ kann ein Schlüssel je Gerät erzeugt werden, sodass auf den Cloud-VPS zwei Schlüssel Zugriff haben. Das hat den Vorteil, dass z.B. bei einem gestohlenen Laptop geprüft werden kann, ob der SSH-Key für einen Login verwendet wurde und der Schlüssel einzeln entfernt werden kann, ohne dass der Desktop-PC den Zugriff verliert.

Der SSH-Key wird meist von einem Agent (z.B. ssh-agent unter Linux, PuttyAgent unter Windows) im RAM gehalten und ist für jede neue Verbindung und jedes neue Cloud-VPS sofort einsatzbereit.

Erzeugen der SSH-Keys unter Linux

Der Schlüssel wird mit folgendem Befehl erzeugt:

ssh-keygen -t rsa -b 4096

Hinweis: Hier wird ein Key von 4096 bit erzeugt. Wir empfehlen, mindestens einen Key mit 2048 bit zu erzeugen.

Dabei werden zwei Abfragen nach Dateiname und Passwort angezeigt. Mit "ENTER" wird der angezeigte Standard verwendet:

Enter file in which to save the key (/home/demouser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

Der Key ist dann - in diesem Beispiel - unter /home/demouser/.ssh/id_rsa abgelegt. Bitte darauf achten, dass unter Linux der Nutzer, mit dem man sich dann per SSH anmelden möchte, auch Eigentümer der Datei ist, also die nötigen Zugriffsrechte hat. Alles in allem könnte der Ablauf z.B. so aussehen:

demouser@tyler-the-sshkey-creator:~$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demouser/.ssh/id_rsa):
Created directory '/home/demouser/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demouser/.ssh/id_rsa.
Your public key has been saved in /home/demouser/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:hb7xUWD9r4Sh67d93EOn+RXzEvWfbWlfwJD7zAl0GOE demouser@tyler-the-sshkey-creator
The key's randomart image is:
+---[RSA 4096]----+
|          o.o.   |
|         o o.+   |
|        . . E.. .|
|       . . o.=...|
|        S ..oo++.|
|         +...=.=@|
|        . .. .BOX|
|          . ..=+B|
|         ......o+|
+----[SHA256]-----+

Diesen Key tragen wir nun bei lima-city in der Verwaltung unter "SSH-Keys" ein, um ihn anschließend auf neuen Cloud-VPS zu hinterlegen.

Dazu lesen wir den öffentlichen Schlüssel in /home/demouser/.ssh/id_rsa.pub aus (der private Teil des Schlüssels in /home/demouser/.ssh/id_rsa muss unbedingt geheim bleiben!):

cat ~/.ssh/id_rsa.pub

Dies erzeugt eine Ausgabe, die in etwa so aussieht:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC94k4xuQaVIm3YPadJsQw+AaZoyIMnCYP/gxry1773sz5FEeNFpaxDgH3Gu6X4Pzx6Kw6LS/CA5r+irUnCxkpECbK5B7TgBr2Re5aFIuQUHWXbpaWMjkBYGEhWdXwYOoJW+tF/0Z33/ki4HBA5GUqX/zpDVqWyoqC3UYT+HAi6qLOwYSC5Rye+WbkSCuFcu1uAZQOlVhuJHMbjpRTFU/vXWNv/QLmc07MQmRFoaovB3krkRkXTY7KcabxllxXxVFw54jR8gTau6lRLP9fzcJ/uB8oZuUlHJi8qfaHnt1BWM9MFc/a424LgeZt6J8Dq0rjmFWCgp3LvLGxFazfBV8oB demouser@keytest

Diese komplette Zeile kopieren wir in das Formular von "SSH-Key anlegen", geben ggf. noch einen Namen ein, fertig!

Erzeugen unter Windows

Die einfachste Möglichkeit, unter Windows SSH-keys zu erzeugen ist PuttyGen:

PuttyGen ohne Schlüssel

Starte dazu PuttyGen und klicke auf "Generate" (2). Es ist eine gute Idee, vorher die Länge des Schlüssels (1) auf 2048 oder sogar 4096bit zu stellen.

PuttyGen

Gib bei (1) einen Kommentar ein (optional und nur für eine bessere Übersicht). Klicke (2) um die .ppk-Datei mit dem privaten und öffentlichen Key zu speichern. Diese Datei enthält auch den öffentlichen Schlüssel, dieser muss nicht extra gespeichert werden. Kopiere den kompletten Schlüssel aus (3), und füge ihn in der Verwaltung unter "SSH-Key anlegen" ein, um ihn anschließend auf neuen Cloud-VPS zu hinterlegen.