Einführung
Um sicher von Ihrem lokalen Computer auf Ihre Hetzner-Instanz zuzugreifen, empfiehlt sich die Verwendung eines SSH-Schlüssels. In diesem Tutorial zeige ich Ihnen, wie Sie die sichere Anmeldung mit Ihrem SSH-Schlüssel auf einer neuen Hetzner-Instanz einrichten.
Passwörter sind oft sehr schwach. Erhöht man die Passwortstärke, wird es deutlich schwieriger, sich das Passwort zu merken, und die Verwendung eines Passwort-Managers ist unerlässlich. Auch SSH-Schlüssel profitieren von ihrer Länge. Sie können bis zu 4096 Bit lang sein. Alternativ lassen sich auch andere Algorithmen wie ECC (Elliptische-Kurven-Kryptographie) nach dem ed25519-Standard verwenden, den wir ebenfalls in diesem Tutorial nutzen werden.
Voraussetzungen
- Ein Hetzner-Cloud-Konto
- Berechtigungen zum Erstellen eines Hetzner-Projekts und einer Hetzner-Instanz
- ssh-keygen, cat und nano sind auf Ihrem lokalen Computer installiert.
Schritt 1 – Erstellen Sie Ihren lokalen SSH-Schlüssel
Sie müssen einen SSH-Schlüssel auf Ihrem lokalen Rechner erstellen. Es empfiehlt sich, am Ende einen Kommentar hinzuzufügen, um den SSH-Schlüssel später leichter identifizieren zu können. Einige Informationen über den Computer selbst können hilfreich sein. Zum Beispiel:
SSH-Schlüssel – MacBook Pro 13 Zoll – [email protected]
ssh-keygen -t ed25519 -C "some comment here"
Anschließend werden Sie nach dem Namen und Speicherort der SSH-Schlüsseldatei gefragt. Um den Standardnamen (ed25519) und -speicherort (/home/user/.ssh/) beizubehalten, drücken Sie einfach die Eingabetaste. Wenn Sie die Datei so benennen möchten, dass Sie mehrere Schlüssel für verschiedene Server unterscheiden können, geben Sie /home/user/.ssh/server01 ein und ersetzen Sie dabei „user“ durch Ihren Benutzernamen.
Anschließend müssen Sie ein Passwort festlegen, um die Sicherheit des Servers zu erhöhen. Viele Anleitungen auf YouTube und im Internet verzichten auf die Verwendung einer Passphrase oder empfehlen diese gar nicht erst. Wir empfehlen jedoch dringend, eine Passphrase zu verwenden, um eine sichere Instanz einzurichten. Diese Passphrase schützt den privaten Schlüssel, sodass niemand auf den Server zugreifen kann, selbst wenn er Zugriff auf Ihren Computer hat. Sie können Ihren SSH-Client so konfigurieren, dass er mit Keypass kommuniziert, um die Passworteingabe zu vermeiden. Beachten Sie jedoch, dass Keypass in der Regel immer aktiv ist. Ein direkter Zugriff auf Ihre angemeldete Sitzung schützt daher nicht vor unbefugtem Zugriff auf den Server. Die Passphrase schützt jedoch davor, die Datei zu kopieren und auf einem anderen Computer zu verwenden. Standardmäßig erstellt dieser Befehl einen öffentlichen und einen privaten Schlüssel mit den Namen id_ed25519.pub und id_ed25519, die im Verzeichnis ~/.ssh/ gespeichert werden. Die Datei id_ed25519.pub ist der öffentliche Schlüssel, den der Server zur Authentifizierung des Benutzers benötigt, und die Datei id_ed25519 ist Ihr privater Schlüssel, auf den niemand außer Ihnen Zugriff haben sollte, insbesondere wenn Sie den Schritt der Festlegung einer Passphrase überspringen.
Schritt 2 – Fügen Sie den SSH-Schlüssel Ihrer Hetzner Cloud Console hinzu.
An dieser Stelle ist es wichtig klarzustellen, dass SSH-Schlüssel nicht zwischen Hetzner-Projekten geteilt werden. Das bedeutet, dass Sie diesen Schritt für jedes neue Projekt mit demselben oder mit unterschiedlichen Schlüsseln wiederholen müssen.
- Wählen Sie ein Projekt aus oder erstellen Sie ein neues.
- Wählen Sie im linken Menü Ihres Projekts den Menüpunkt Sicherheit aus.
- Klicken Sie auf die Schaltfläche „SSH-Schlüssel hinzufügen“.
- Führen Sie auf Ihrem lokalen Rechner den Befehl cat /home/user/.ssh/id_ed25519.pub aus, um den Inhalt Ihrer Datei anzuzeigen, oder öffnen Sie sie in einem Editor.
- Kopieren Sie den Inhalt Ihrer Datei id_ed25519.pubfile von Ihrem lokalen Gerät in die Zwischenablage, indem Sie Ausgabe auswählen und Strg+Umschalt+C drücken.
- Fügen Sie den SSH-Schlüssel im dafür vorgesehenen Feld Ihres Hetzner-Kontos ein.
- Geben Sie dem SSH-Schlüssel einen Namen, um ihn in der Hetzner Cloud Console zu identifizieren, oder verwenden Sie den automatisch generierten Namen, der auf dem Namen des Schlüssels basiert.
- Das war's. Dieser spezielle SSH-Schlüssel kann nun jedes Mal verwendet werden, wenn Sie eine neue Instanz für dieses spezielle Projekt erstellen.
Schritt 3 – Erstellen Sie eine Hetzner-Instanz mit dem in der Cloud Console hinzugefügten SSH-Schlüssel.
- Wählen Sie im linken Menü des Projekts, dem Sie im vorherigen Schritt den SSH-Schlüssel hinzugefügt haben, den Menüpunkt Server aus.
- Klicken Sie auf die Schaltfläche „Server hinzufügen“.
- Wählen Sie einen Standort, ein Betriebssystem, einen Typ und weitere gewünschte Einstellungen.
- Klicken Sie im Abschnitt „SSH-Schlüssel“ unbedingt auf den vorgeschlagenen SSH-Schlüssel, den Sie im vorherigen Schritt hinzugefügt haben. Das Feld „Schlüssel“ sollte markiert sein.
- Erstellen Sie das Muster, indem Sie auf „Erstellen und Kaufen“ klicken.
Schritt 4 – Testen Sie die Anmeldung mit dem SSH-Schlüssel von Ihrem lokalen Computer aus
- Kopieren Sie die IP-Adresse der Hetzner-Instanz
- Melden Sie sich zunächst an Ihrem lokalen Computer an. Ersetzen Sie xxx.xxx.xxx.xxx durch die IP-Adresse der von Ihnen erstellten Hetzner-Instanz.
- Geben Sie „yes“ ein, um den Fingerabdruck zur Datei known_hosts hinzuzufügen.
- Geben Sie die Passphrase ein, die Sie für den SSH-Schlüssel festgelegt haben.
- Und das war's. Wenn Sie die Beispiel-Willkommensnachricht von Ubuntu Hetzner sehen, war der Vorgang erfolgreich.
Schritt 5 – Fügen Sie einem zuvor erstellten Server einen SSH-Schlüssel hinzu
Wenn Sie Ihren Server erstellt haben, bevor Sie den SSH-Schlüssel hinzugefügt haben, können Sie ihn nicht über die Cloud Console Ihrem Server zuweisen.
Es empfiehlt sich, dies zunächst auf einem neuen Server zu testen, um die SSH-Verbindung zur Produktionsumgebung nicht zu verlieren. Da dies nur wenige Minuten dauert, ist der Server schnell einsatzbereit und kostet im schlimmsten Fall nur wenige Cent. Erstellen Sie also einen neuen Server ohne SSH-Schlüssel und folgen Sie diesen Schritten.
Der Inhalt Ihrer öffentlichen Schlüsseldatei mit folgendem Inhalt:
cat /home/user/.ssh/id_ed25519.pub
Wählen Sie den Ausgang mit Strg+Umschalt+C aus.
Melden Sie sich mit folgendem Link bei Ihrem Server an:
ssh root@server_ip
Geben Sie den Serverschlüssel ein:
- Als Root-Benutzer:
echo "keyfile_content" >> /root/.ssh/authorized_keys
- Wie jeder andere Benutzer:
echo "keyfile_content" >> /home/user/.ssh/authorized_keys
Ersetzen Sie „keyfile_content“ durch den Inhalt der Datei „id_ed25519.pub“, die Sie soeben kopiert haben. Ersetzen Sie „user“ durch Ihren Benutzernamen.
nano /etc/ssh/sshd_config
Falls nano installiert ist, können Sie es durch Ihren bevorzugten Editor ersetzen.
Wenn Sie die Anmeldung mit Passwort deaktivieren möchten, suchen Sie die Zeile mit PermitRootLogin und ändern Sie sie exakt wie folgt:
PermitRootLogin prohibit-password
Dadurch wird die Verwendung unsicherer Passwörter deaktiviert und es werden nur Ihre SSH-Schlüssel akzeptiert.
Um Ihren SSH-Daemon neu zu laden und die neuen Einstellungen zu aktivieren, führen Sie Folgendes aus:
systemctl restart sshd
Beenden Sie die SSH-Sitzung und versuchen Sie, ohne Passwort darauf zuzugreifen. Falls Sie eine Passphrase zum Schutz Ihres lokalen privaten Schlüssels festgelegt haben, müssen Sie diese weiterhin eingeben.
Wenn Sie diese Schritte sorgfältig befolgt haben und alles wie geplant funktioniert, können Sie jetzt mit Ihrem Produktionsserver fortfahren und den Testserver wieder löschen.
Ergebnis
Sie können sich nun sicher in Ihre Hetzner-Instanz einloggen.









