SSH-Schlüssel generieren, hochladen und verwalten
Zuletzt aktualisiert am
Mit SSH (Secure Shell) verbinden Sie sich sicher mit Ihren virtuellen Maschinen (VMs) auf STACKIT und verwalten diese. Statt eines Passworts nutzt SSH ein Schlüsselpaar zur Authentifizierung:
- Der private Schlüssel bleibt auf Ihrem Rechner. Geben Sie ihn niemals weiter.
- Der öffentliche Schlüssel wird in Ihrem STACKIT Benutzerkonto gespeichert. Wenn Sie eine VM erstellen, hinterlegt STACKIT den öffentlichen Schlüssel auf der VM. Anschließend melden Sie sich mit dem passenden privaten Schlüssel an.
SSH-Schlüssel werden pro Benutzerkonto gespeichert. Sie sind unabhängig vom Kundenkonto und stehen Ihnen in allen Projekten zur Verfügung, auf die Sie Zugriff haben.
In dieser Anleitung erfahren Sie, wie Sie:
- ein SSH-Schlüsselpaar auf Ihrem Rechner generieren.
- den öffentlichen Schlüssel in Ihr STACKIT Benutzerkonto hochladen.
- Ihre SSH-Schlüssel auflisten und mit Ihren lokalen Schlüsseln vergleichen.
- Ihre SSH-Schlüssel verwalten.
SSH-Schlüsselpaar generieren
Abschnitt betitelt „SSH-Schlüsselpaar generieren“Wir empfehlen den Schlüsseltyp Ed25519. Er ist sicher, schnell und erzeugt kurze Schlüssel. Verwenden Sie RSA mit 4096 Bit nur, wenn ein von Ihnen genutztes Tool Ed25519 nicht unterstützt.
-
Öffnen Sie ein Terminal.
-
Generieren Sie ein neues Schlüsselpaar. Ersetzen Sie den Kommentar durch eine Bezeichnung, mit der Sie den Schlüssel wiedererkennen, zum Beispiel Ihre E-Mail-Adresse oder den Namen Ihres Rechners:
Terminal-Fenster ssh-keygen -t ed25519 -C "your_email@example.com"Wenn Sie stattdessen einen RSA-Schlüssel benötigen, verwenden Sie
ssh-keygen -t rsa -b 4096 -C "your_email@example.com". -
Wenn Sie nach einem Speicherort gefragt werden, drücken Sie Enter, um den Standardpfad (
~/.ssh/id_ed25519) zu übernehmen, oder geben Sie einen anderen Pfad ein.Enter file in which to save the key (/home/you/.ssh/id_ed25519): -
Geben Sie eine sichere Passphrase ein und wiederholen Sie sie. Die Passphrase verschlüsselt Ihren privaten Schlüssel auf der Festplatte. So kann er nicht verwendet werden, falls jemand die Datei in die Hände bekommt.
Enter passphrase (empty for no passphrase):Enter same passphrase again: -
Lassen Sie sich den öffentlichen Schlüssel anzeigen:
Terminal-Fenster cat ~/.ssh/id_ed25519.pubDie Ausgabe ist eine einzelne Zeile, ähnlich der folgenden. Diese Zeile benötigen Sie, wenn Sie den Schlüssel zu STACKIT hochladen.
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK0wmN/Cr3JXqmLW7u+g9pTh+wyqDHpSQEIQczXkVx9q your_email@example.com
Windows 10 (ab Version 1809) und Windows 11 enthalten den OpenSSH-Client. Sie müssen also keine zusätzliche Software installieren.
-
Öffnen Sie PowerShell oder Windows Terminal.
-
Generieren Sie ein neues Schlüsselpaar. Ersetzen Sie den Kommentar durch eine Bezeichnung, mit der Sie den Schlüssel wiedererkennen, zum Beispiel Ihre E-Mail-Adresse oder den Namen Ihres Rechners:
Terminal-Fenster ssh-keygen -t ed25519 -C "your_email@example.com" -
Wenn Sie nach einem Speicherort gefragt werden, drücken Sie Enter, um den Standardpfad (
C:\Users\<username>\.ssh\id_ed25519) zu übernehmen, oder geben Sie einen anderen Pfad ein. -
Geben Sie eine sichere Passphrase ein und wiederholen Sie sie. Die Passphrase verschlüsselt Ihren privaten Schlüssel auf der Festplatte. So kann er nicht verwendet werden, falls jemand die Datei in die Hände bekommt.
-
Lassen Sie sich den öffentlichen Schlüssel anzeigen:
Terminal-Fenster Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubDie Ausgabe ist eine einzelne Zeile, die mit
ssh-ed25519beginnt. Diese Zeile benötigen Sie, wenn Sie den Schlüssel zu STACKIT hochladen.
Optional: Schlüssel zum SSH-Agent hinzufügen
Abschnitt betitelt „Optional: Schlüssel zum SSH-Agent hinzufügen“Der SSH-Agent hält Ihren entsperrten privaten Schlüssel im Arbeitsspeicher. So müssen Sie die Passphrase nicht bei jeder Verbindung erneut eingeben.
-
Starten Sie den SSH-Agent im Hintergrund:
Terminal-Fenster eval "$(ssh-agent -s)" -
Fügen Sie Ihren privaten Schlüssel zum Agent hinzu und geben Sie Ihre Passphrase ein:
Terminal-Fenster ssh-add ~/.ssh/id_ed25519 -
Nur macOS: Damit der Schlüssel automatisch geladen und die Passphrase in Ihrem Schlüsselbund gespeichert wird, fügen Sie Folgendes in die Datei
~/.ssh/configein. Erstellen Sie die Datei, falls sie nicht existiert.Host *AddKeysToAgent yesUseKeychain yesIdentityFile ~/.ssh/id_ed25519Fügen Sie den Schlüssel anschließend einmalig mit
ssh-add --apple-use-keychain ~/.ssh/id_ed25519hinzu.
-
Öffnen Sie PowerShell als Administrator und starten Sie den SSH-Agent-Dienst. Stellen Sie ihn auf automatischen Start ein:
Terminal-Fenster Get-Service ssh-agent | Set-Service -StartupType AutomaticStart-Service ssh-agent -
Fügen Sie in einer normalen PowerShell-Sitzung Ihren privaten Schlüssel zum Agent hinzu und geben Sie Ihre Passphrase ein:
Terminal-Fenster ssh-add $env:USERPROFILE\.ssh\id_ed25519
Öffentlichen Schlüssel zu STACKIT hochladen
Abschnitt betitelt „Öffentlichen Schlüssel zu STACKIT hochladen“Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Sie haben ein SSH-Schlüsselpaar generiert.
- Für die CLI: Sie haben die STACKIT CLI installiert und sich authentifiziert.
- Für die API: Sie haben ein gültiges STACKIT-Zugriffstoken und es in der Umgebungsvariable
STACKIT_ACCESS_TOKENgesetzt. Mit der STACKIT CLI erhalten Sie ein kurzlebiges Token für Ihr Benutzerkonto, zum Beispiel mitexport STACKIT_ACCESS_TOKEN=$(stackit auth get-access-token)(Linux und macOS) oder$env:STACKIT_ACCESS_TOKEN = stackit auth get-access-token(PowerShell).
Vorgehensweise
Abschnitt betitelt „Vorgehensweise“-
Kopieren Sie Ihren öffentlichen Schlüssel in die Zwischenablage:
- macOS:
pbcopy < ~/.ssh/id_ed25519.pub - Linux:
xclip -selection clipboard < ~/.ssh/id_ed25519.pub(oderwl-copy < ~/.ssh/id_ed25519.pubunter Wayland) - Windows (PowerShell):
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard
Alternativ lassen Sie sich den Schlüssel mit
cat(bzw.Get-Contentunter Windows) anzeigen und kopieren die vollständige Zeile manuell. - macOS:
-
Öffnen Sie die SSH-Schlüssel-Einstellungen im STACKIT Portal.
-
Wählen Sie + SSH-Schlüssel erstellen aus.
-
Geben Sie im Feld Schlüsselname einen Namen ein, mit dem Sie den Schlüssel wiedererkennen, zum Beispiel
laptop-work. -
Fügen Sie im Feld Bitte geben Sie einen Schlüssel ein Ihren öffentlichen Schlüssel ein. Achten Sie darauf, die vollständige Zeile einzufügen, beginnend mit dem Schlüsseltyp, zum Beispiel
ssh-ed25519. -
Wählen Sie Erstellen aus.
Laden Sie Ihren öffentlichen Schlüssel direkt aus der Datei hoch. Das Präfix @ weist die CLI an, den Wert aus der Datei zu lesen:
stackit key-pair create --name laptop-work --public-key @$HOME/.ssh/id_ed25519.pubSie können dem Schlüssel auch Labels hinzufügen:
stackit key-pair create --name laptop-work --public-key @$HOME/.ssh/id_ed25519.pub --labels team=opsDie CLI löst ~ nicht auf, verwenden Sie deshalb $HOME im Pfad. Unter Windows (PowerShell) verwenden Sie @$env:USERPROFILE\.ssh\id_ed25519.pub.
Alle Optionen finden Sie in der CLI-Referenz für stackit key-pair.
Senden Sie eine POST-Anfrage an den Keypairs-Endpunkt der IaaS API:
curl -X POST "https://iaas.api.stackit.cloud/v2/keypairs" \ -H "Authorization: Bearer $STACKIT_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "laptop-work", "publicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK0wmN/Cr3JXqmLW7u+g9pTh+wyqDHpSQEIQczXkVx9q your_email@example.com" }'Details finden Sie in der API-Referenz für Keypairs.
Nach dem Hochladen wird der Schlüssel in Ihrer Liste der SSH-Schlüssel angezeigt. STACKIT berechnet automatisch den Fingerabdruck des Schlüssels. Sie können den Schlüssel jetzt beim Erstellen einer VM als initiale Zugangsdaten auswählen.
SSH-Schlüssel auflisten
Abschnitt betitelt „SSH-Schlüssel auflisten“- Öffnen Sie die SSH-Schlüssel-Einstellungen im STACKIT Portal.
Die Seite listet alle SSH-Schlüssel des Benutzers auf, mit dem Sie aktuell angemeldet sind. Für jeden Schlüssel werden Name, Fingerabdruck und Erstellungsdatum angezeigt.
stackit key-pair listcurl "https://iaas.api.stackit.cloud/v2/keypairs" \ -H "Authorization: Bearer $STACKIT_ACCESS_TOKEN"Um zu prüfen, welcher lokale Schlüssel zu einem gespeicherten Schlüssel gehört, vergleichen Sie den im Portal oder in der CLI angezeigten Fingerabdruck mit dem MD5-Fingerabdruck Ihres lokalen Schlüssels. STACKIT zeigt MD5-Fingerabdrücke an, ssh-keygen verwendet standardmäßig SHA256. Ergänzen Sie deshalb -E md5:
ssh-keygen -E md5 -lf ~/.ssh/id_ed25519.pubSSH-Schlüssel verwalten
Abschnitt betitelt „SSH-Schlüssel verwalten“- Öffnen Sie die SSH-Schlüssel-Einstellungen im STACKIT Portal.
- Öffnen Sie das Kontextmenü des SSH-Schlüssels, den Sie ändern möchten, indem Sie auf die drei Punkte am Ende der Zeile klicken.
- Wählen Sie die gewünschte Aktion aus. Sie können die Aktionen Löschen, Umbenennen und Als Standard festlegen ausführen.
Als Standard festlegen
Abschnitt betitelt „Als Standard festlegen“Diese Aktion legt Ihren ausgewählten SSH-Schlüssel als Standardschlüssel fest. Wenn Sie eine neue VM erstellen, ist dieser Schlüssel als initiale Zugangsdaten vorausgewählt. Sie können während der Erstellung der VM weiterhin einen anderen SSH-Schlüssel auswählen.
Umbenennen
Abschnitt betitelt „Umbenennen“Sie können einen SSH-Schlüssel umbenennen. Der Schlüssel selbst ändert sich dadurch nicht. Jeder Schlüssel muss einen eindeutigen Namen haben.
Löschen
Abschnitt betitelt „Löschen“Diese Aktion löscht einen SSH-Schlüssel aus Ihrem Benutzerkonto. Nach dem Löschen können Sie diesen Schlüssel nicht mehr für neue VMs auswählen. Bestehende VMs, auf denen der Schlüssel bereits als initiale Zugangsdaten hinterlegt wurde, sind nicht betroffen. Um den Zugriff auf eine bestehende VM zu entziehen, entfernen Sie den Schlüssel aus der Datei ~/.ssh/authorized_keys des Benutzers, mit dem Sie sich mit der VM verbinden.
Sie können einen Schlüssel auch mit der CLI (stackit key-pair delete <name>) oder über die API (DELETE https://iaas.api.stackit.cloud/v2/keypairs/<name>) löschen.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Um sich mit einer VM zu verbinden, verwenden Sie
ssh -i ~/.ssh/id_ed25519 <username>@<ip-address>. Der Benutzername hängt vom Betriebssystem-Image der VM ab, siehe Benutzername für SSH-Zugriff.