# SSH-Schlüssel zu einer Website hinzufügen

Source: https://support.kapsulehost.com/de-de/adding-ssh-keys

Die SSH-Zugriff auf eine KapsuleHost-Website erfolgt ausschließlich schlüsselbasiert. Bevor Sie also eine Shell oder eine SFTP-Sitzung öffnen können, müssen Sie einen öffentlichen Schlüssel für die Website in KPanel registrieren. Diese Anleitung behandelt, wo sich das befindet, wie Sie einen bereits vorhandenen Schlüssel hinzufügen, wie Sie KapsuleHost einen Schlüssel für Sie generieren lassen, und wie Sie einen Schlüssel widerrufen, dem Sie nicht mehr vertrauen.

## Wo sich die Seite für SSH-Schlüssel befindet

Öffnen Sie **Websites**, klicken Sie auf die Website, öffnen Sie dann die Gruppe **Einstellungen** im linken Menü der Website und wählen Sie **SSH-Schlüssel**. Die Seite trägt den Titel **SSH-Zugriff** und enthält zwei Dinge: die Verbindungsdetails für diese Website und die Liste der öffentlichen Schlüssel, die derzeit zur Nutzung berechtigt sind.

Es gibt keinen übergeordneten SSH-Eintrag in der Hauptseitenleiste. Schlüssel gelten pro Website, sodass ein hier hinzugefügter Schlüssel sich nur gegenüber dieser Website authentifiziert. Wenn Sie mehrere Websites betreiben, benötigt jede ihren eigenen Eintrag, selbst wenn es sich um denselben Schlüssel auf Ihrem Laptop handelt.

![Die SSH-Zugriff-Seite für eine Website in KPanel, mit den Verbindungsdetails und der Liste der autorisierten öffentlichen Schlüssel](https://support.kapsulehost.com/help/screenshots/adding-ssh-keys.2a53d172.webp)

> **Note:** Zum Hinzufügen oder Widerrufen eines Schlüssels ist die Berechtigung **sites:write** erforderlich. Wenn Sie ein Team-Konto mit einer reinen Leserolle nutzen, sind die Schaltfläche **Schlüssel hinzufügen** und das Widerrufssymbol ausgeblendet. Bitten Sie einen Kontoinhaber oder Administrator, die Änderung vorzunehmen.

## Verbindungsdetails

Die Karte **Verbindungsdetails** oben auf der Seite zeigt alles, was Ihr Client benötigt:

| Feld | Was es ist |
|---|---|
| Host | Der Hostname, zu dem eine Verbindung hergestellt wird |
| Port | Der SSH-Port für diese Website |
| Benutzername | Der Systembenutzer, unter dem Ihre Website läuft |
| SSH | Ein fertiger `ssh`-Befehl für diese Website |
| SFTP | Ein fertiger `sftp`-Befehl für diese Website |

Jede Zeile verfügt über eine Kopierfunktion, und die SSH- und SFTP-Zeilen kopieren den gesamten Befehl und nicht nur den Wert, sodass Sie direkt in ein Terminal einfügen können. Verwenden Sie diese beiden, statt den Befehl selbst einzutippen: Sie enthalten bereits den richtigen Benutzer, Host und Port.

Wenn die Karte überhaupt nicht erscheint, hat die Website die Bereitstellung ihres Shell-Benutzers noch nicht abgeschlossen. Die API gibt in diesem Fall schlicht den Fehler **Website hat keinen SSH-Benutzer** zurück. Warten Sie, bis die Status-Markierung der Website **Aktiv** anzeigt, und laden Sie die Seite neu.

## Einen bereits vorhandenen Schlüssel hinzufügen

Die meisten Leute haben bereits ein Schlüsselpaar auf ihrem Rechner. Fügen Sie hier die öffentliche Hälfte hinzu.

1. Lassen Sie sich auf Ihrem eigenen Computer Ihren öffentlichen Schlüssel anzeigen. Unter macOS und Linux ist das üblicherweise `cat ~/.ssh/id_ed25519.pub`, oder `cat ~/.ssh/id_rsa.pub` für einen älteren RSA-Schlüssel. Unter Windows mit OpenSSH ist es `type %USERPROFILE%\.ssh\id_ed25519.pub`.
2. Kopieren Sie die gesamte einzelne Zeile, die mit `ssh-ed25519`, `ssh-rsa` oder `ecdsa-sha2-nistp256` beginnt.
3. Klicken Sie in KPanel auf **Schlüssel hinzufügen**.
4. Tragen Sie etwas Einprägsames in das Feld **Label** ein, zum Beispiel den Namen des Rechners, auf dem der Schlüssel liegt.
5. Fügen Sie den öffentlichen Schlüssel in das zweite Feld ein.
6. Klicken Sie auf **Schlüssel hinzufügen**.

Der Schlüssel erscheint sofort in der Liste **Autorisierte Schlüssel**, mit seinem Fingerabdruck unter dem Label. Sie können sich sofort verbinden.

KapsuleHost sendet außerdem jedes Mal, wenn ein Schlüssel hinzugefügt wird, eine E-Mail an die Konto-Adresse, mit Angabe von Label, Fingerabdruck und Website. Diese Mail ist Absicht: SSH-Zugriff genießt hohes Vertrauen, falls also ein Schlüssel auftaucht, den Sie nicht hinzugefügt haben, widerrufen Sie ihn und ändern Sie umgehend Ihr Passwort.

> **Warning:** Fügen Sie ausschließlich die Datei `.pub` ein. Eine private Schlüsseldatei hat keine `.pub`-Erweiterung und beginnt mit einer Zeile wie `-----BEGIN OPENSSH PRIVATE KEY-----`. Wenn Sie das einfügen, handelt es sich um Ihren privaten Schlüssel, der neu generiert statt weiterverwendet werden muss.

### Falls Sie noch keinen Schlüssel haben

Generieren Sie lokal einen mit `ssh-keygen -t ed25519 -C "your-label"`, akzeptieren Sie den Standard-Dateispeicherort und legen Sie bei Aufforderung eine Passphrase fest. Dabei entstehen `~/.ssh/id_ed25519` (geheim halten) und `~/.ssh/id_ed25519.pub` (diesen einfügen).

## KapsuleHost das Schlüsselpaar generieren lassen

Wenn Sie `ssh-keygen` lieber nicht selbst ausführen möchten, kann KPanel das Paar für Sie erstellen.

1. Klicken Sie auf **Schlüssel hinzufügen**.
2. Füllen Sie das Feld **Label** aus. Lassen Sie das Feld für den öffentlichen Schlüssel leer.
3. Klicken Sie auf **Schlüsselpaar generieren**.

KapsuleHost erstellt ein Ed25519-Paar, installiert die öffentliche Hälfte für die Website und zeigt ein grünes Banner: **Schlüsselpaar generiert: Laden Sie jetzt den privaten Schlüssel herunter**. Klicken Sie auf **.pem herunterladen**, um den privaten Schlüssel zu speichern. Die Datei trägt den Namen des von Ihnen gewählten Labels.

> **Important:** Der private Schlüssel wird nur ein einziges Mal angezeigt. Das Banner weist ausdrücklich darauf hin: Dies ist die einzige Gelegenheit, ihn herunterzuladen. KapsuleHost bewahrt keine Kopie auf, die Sie später abrufen könnten. Wenn Sie das Banner schließen, ohne herunterzuladen, widerrufen Sie den Schlüssel und generieren Sie ein neues Paar.

Ein generierter Schlüssel hat keine Passphrase, wodurch er sich ohne Abfrage aus einem Skript heraus verwenden lässt. Das bedeutet auch, dass die Datei selbst das gesamte Zugangsmittel ist. Wenn Sie eine Passphrase möchten, generieren Sie das Paar stattdessen selbst mit `ssh-keygen` und fügen Sie die öffentliche Hälfte ein.

Verschieben Sie die Datei nach dem Herunterladen an einen sinnvollen Ort und schränken Sie ihre Berechtigungen ein, da SSH die Verwendung eines für alle lesbaren privaten Schlüssels verweigert:

```sh
mv ~/Downloads/my-laptop_id_ed25519.pem ~/.ssh/kapsule-mysite.pem
chmod 600 ~/.ssh/kapsule-mysite.pem
ssh -i ~/.ssh/kapsule-mysite.pem <username>@<host> -p <port>
```

Setzen Sie Benutzername, Host und Port aus der Karte **Verbindungsdetails** ein.

## Die Liste der autorisierten Schlüssel lesen

Jede Zeile unter **Autorisierte Schlüssel** zeigt:

- Das Label, das Sie dem Schlüssel gegeben haben.
- Den Fingerabdruck des Schlüssels, anhand dessen Sie zwei Schlüssel mit ähnlichem Label unterscheiden können.
- **Hinzugefügt** mit dem Datum der Registrierung.
- **Zuletzt verwendet** mit dem Datum der letzten Authentifizierung, oder **Nie verwendet**, falls noch keine Authentifizierung erfolgt ist.

Die Spalte **Zuletzt verwendet** ist bei einer Bereinigung besonders nützlich. Ein Schlüssel, der nie verwendet wurde oder seit Monaten nicht mehr genutzt wurde, stammt meist von einem ersetzten Laptop oder einem Auftragnehmer, der das Projekt verlassen hat.

## Einen Schlüssel widerrufen

Klicken Sie auf das rote Papierkorbsymbol in der Zeile des Schlüssels. KPanel bittet Sie um Bestätigung mit **SSH-Schlüssel widerrufen?** und dem Hinweis, dass sich der Schlüssel nicht mehr gegenüber dieser Website authentifizieren kann. Klicken Sie auf **Widerrufen**, um den Vorgang abzuschließen.

Der Widerruf wirkt sich auf neue Verbindungen aus. Eine bereits bestehende SSH-Sitzung wird durch den Widerruf des Schlüssels nicht beendet. Wenn Sie also jemandem den Zugriff entziehen, der möglicherweise noch verbunden ist, widerrufen Sie den Schlüssel und ändern Sie anschließend alles, was diese Person möglicherweise mitgenommen hat: Datenbankpasswörter, Anwendungsgeheimnisse und alle auf der Website gespeicherten Tokens.

> **Tip:** Halten Sie die Schlüsselliste kurz. Ein Schlüssel pro Rechner, beschriftet mit dem Rechnernamen, lässt sich weit einfacher überprüfen als ein Haufen Schlüssel namens „key1“, „neuer Schlüssel“ und „temp“.

## Fehlerbehebung

**Permission denied (publickey).** Die häufigste Ursache ist, dass Ihr Client einen anderen Schlüssel anbietet als den registrierten. Erzwingen Sie den richtigen mit `ssh -i /path/to/private_key ...`, oder prüfen Sie mit `ssh -v`, welche Schlüssel angeboten werden.

**Verbindung abgelehnt oder Zeitüberschreitung.** Stellen Sie sicher, dass Sie den in **Verbindungsdetails** angezeigten Port verwenden und nicht den Standardport 22. Kopieren Sie den SSH-Befehl von der Seite, statt ihn selbst einzutippen.

**Falsche Berechtigungen beim privaten Schlüssel.** OpenSSH lehnt einen privaten Schlüssel ab, den andere Benutzer lesen können. Führen Sie `chmod 600` für die Datei aus.

**Der Schlüssel funktioniert bei SSH, aber nicht bei SFTP.** Sie teilen sich dieselben Zugangsdaten, daher liegt es so gut wie immer am Client und nicht am Schlüssel. Verwenden Sie den von der Seite kopierten SFTP-Befehl, der bereits den richtigen Port enthält.

## Wie es weitergeht

- [Dateien mit SFTP hochladen](https://support.kapsulehost.com/de-de/sftp-access) behandelt die Dateiübertragung mit denselben Zugangsdaten.
- [Verbindung zu Ihrer Datenbank über einen SSH-Tunnel](https://support.kapsulehost.com/de-de/database-ssh-tunnel) nutzt den soeben hinzugefügten Schlüssel, um von einem Desktop-Client aus auf MySQL zuzugreifen.
- [Website-Aktivitätsprotokoll](https://support.kapsulehost.com/de-de/site-activity-log) erfasst jeden hinzugefügten Schlüssel, sodass Sie später nachvollziehen können, wer was wann hinzugefügt hat.
