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.

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.
- Lassen Sie sich auf Ihrem eigenen Computer Ihren öffentlichen Schlüssel anzeigen. Unter macOS und Linux ist das üblicherweise
cat ~/.ssh/id_ed25519.pub, odercat ~/.ssh/id_rsa.pubfür einen älteren RSA-Schlüssel. Unter Windows mit OpenSSH ist estype %USERPROFILE%\.ssh\id_ed25519.pub. - Kopieren Sie die gesamte einzelne Zeile, die mit
ssh-ed25519,ssh-rsaoderecdsa-sha2-nistp256beginnt. - Klicken Sie in KPanel auf Schlüssel hinzufügen.
- Tragen Sie etwas Einprägsames in das Feld Label ein, zum Beispiel den Namen des Rechners, auf dem der Schlüssel liegt.
- Fügen Sie den öffentlichen Schlüssel in das zweite Feld ein.
- 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.
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.
- Klicken Sie auf Schlüssel hinzufügen.
- Füllen Sie das Feld Label aus. Lassen Sie das Feld für den öffentlichen Schlüssel leer.
- 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.
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:
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.
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 behandelt die Dateiübertragung mit denselben Zugangsdaten.
- Verbindung zu Ihrer Datenbank über einen SSH-Tunnel nutzt den soeben hinzugefügten Schlüssel, um von einem Desktop-Client aus auf MySQL zuzugreifen.
- Website-Aktivitätsprotokoll erfasst jeden hinzugefügten Schlüssel, sodass Sie später nachvollziehen können, wer was wann hinzugefügt hat.