Zum Inhalt springen

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:

  1. ein SSH-Schlüsselpaar auf Ihrem Rechner generieren.
  2. den öffentlichen Schlüssel in Ihr STACKIT Benutzerkonto hochladen.
  3. Ihre SSH-Schlüssel auflisten und mit Ihren lokalen Schlüsseln vergleichen.
  4. Ihre SSH-Schlüssel verwalten.

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.

  1. Öffnen Sie ein Terminal.

  2. 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".

  3. 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):
  4. 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:
  5. Lassen Sie sich den öffentlichen Schlüssel anzeigen:

    Terminal-Fenster
    cat ~/.ssh/id_ed25519.pub

    Die 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

Der SSH-Agent hält Ihren entsperrten privaten Schlüssel im Arbeitsspeicher. So müssen Sie die Passphrase nicht bei jeder Verbindung erneut eingeben.

  1. Starten Sie den SSH-Agent im Hintergrund:

    Terminal-Fenster
    eval "$(ssh-agent -s)"
  2. Fügen Sie Ihren privaten Schlüssel zum Agent hinzu und geben Sie Ihre Passphrase ein:

    Terminal-Fenster
    ssh-add ~/.ssh/id_ed25519
  3. 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/config ein. Erstellen Sie die Datei, falls sie nicht existiert.

    Host *
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_ed25519

    Fügen Sie den Schlüssel anschließend einmalig mit ssh-add --apple-use-keychain ~/.ssh/id_ed25519 hinzu.

  • 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_TOKEN gesetzt. Mit der STACKIT CLI erhalten Sie ein kurzlebiges Token für Ihr Benutzerkonto, zum Beispiel mit export STACKIT_ACCESS_TOKEN=$(stackit auth get-access-token) (Linux und macOS) oder $env:STACKIT_ACCESS_TOKEN = stackit auth get-access-token (PowerShell).
  1. Kopieren Sie Ihren öffentlichen Schlüssel in die Zwischenablage:

    • macOS: pbcopy < ~/.ssh/id_ed25519.pub
    • Linux: xclip -selection clipboard < ~/.ssh/id_ed25519.pub (oder wl-copy < ~/.ssh/id_ed25519.pub unter Wayland)
    • Windows (PowerShell): Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard

    Alternativ lassen Sie sich den Schlüssel mit cat (bzw. Get-Content unter Windows) anzeigen und kopieren die vollständige Zeile manuell.

  2. Öffnen Sie die SSH-Schlüssel-Einstellungen im STACKIT Portal.

  3. Wählen Sie + SSH-Schlüssel erstellen aus.

  4. Geben Sie im Feld Schlüsselname einen Namen ein, mit dem Sie den Schlüssel wiedererkennen, zum Beispiel laptop-work.

  5. 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.

  6. Wählen Sie Erstellen aus.

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.

  1. Ö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.

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:

Terminal-Fenster
ssh-keygen -E md5 -lf ~/.ssh/id_ed25519.pub
  1. Öffnen Sie die SSH-Schlüssel-Einstellungen im STACKIT Portal.
  2. Öffnen Sie das Kontextmenü des SSH-Schlüssels, den Sie ändern möchten, indem Sie auf die drei Punkte am Ende der Zeile klicken.
  3. Wählen Sie die gewünschte Aktion aus. Sie können die Aktionen Löschen, Umbenennen und Als Standard festlegen ausführen.

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.

Sie können einen SSH-Schlüssel umbenennen. Der Schlüssel selbst ändert sich dadurch nicht. Jeder Schlüssel muss einen eindeutigen Namen haben.

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.

  • 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.