# SSH-Key anlegen und auf dem Server hinterlegen

Du erzeugst ein SSH-Schlüsselpaar im Terminal, legst den öffentlichen Schlüssel auf dem Server ab und trägst den privaten Schlüssel in der Plattform ein.

> Source: https://www.application-platform.com/de/docs/create-ssh-key/

Ein SSH-Schlüsselpaar besteht aus einem privaten Schlüssel, der geheim bleibt und in die Plattform kommt, und einem öffentlichen Schlüssel, der auf den Server kommt. Du brauchst es, wenn du einen [eigenen Server]({{< relref "own-server" >}}) mit der Plattform verbinden willst.

## 1. Schlüsselpaar erzeugen

Führe im Terminal diesen Befehl aus:

```bash
ssh-keygen -t ed25519 -C "application-platform" -f ~/.ssh/application-platform
```

Bestätige die Abfragen mit Enter. Danach liegen in `~/.ssh` der private Schlüssel `application-platform` und der öffentliche Schlüssel `application-platform.pub`.

## 2. Öffentlichen Schlüssel auf dem Server hinterlegen

Am schnellsten geht das mit `ssh-copy-id`; ersetze Benutzer und Host durch die Werte deines Servers:

```bash
ssh-copy-id -i ~/.ssh/application-platform.pub deploy@dein-server.example.com
```

Ohne `ssh-copy-id` hängst du den Inhalt der `.pub`-Datei auf dem Server von Hand an die Datei `~/.ssh/authorized_keys` des Benutzers an.

Prüfe anschließend die Anmeldung mit dem neuen Schlüssel:

```bash
ssh -i ~/.ssh/application-platform deploy@dein-server.example.com
```

Wenn du ohne Passwortabfrage auf dem Server landest, ist der öffentliche Schlüssel richtig hinterlegt. Fragt der Server weiterhin nach einem Passwort, prüfe, ob du den Schlüssel beim richtigen Benutzer eingetragen hast.

## 3. Privaten Schlüssel in der Plattform eintragen

1. Öffne in der Plattform **Server**, klicke auf **Server hinzufügen** und wähle **SSH**.
2. Gib den Inhalt der privaten Schlüsseldatei im Terminal aus:

   ```bash
   cat ~/.ssh/application-platform
   ```

3. Kopiere die komplette Ausgabe einschließlich der `BEGIN`- und `END`-Zeilen in das Feld **SSH Private Key**.
4. Fülle die übrigen Felder aus, wie unter [Eigener Server (SSH)]({{< relref "own-server" >}}) beschrieben, und speichere.

{{< docnote type="warning" >}}
Der private Schlüssel gehört nur in deinen `~/.ssh`-Ordner und in den Server-Eintrag der Plattform. Teile ihn nie per Chat oder E-Mail und committe ihn nie in ein Repository.
{{< /docnote >}}

