# Per SSH verbinden

Ihr VPS Pro öffnet sich mit Ihrem **SSH-Schlüssel**: einem Dateipaar, das auf Ihrem Computer erstellt wird und dessen **öffentlichen** Teil Sie in Ihrem Kundenbereich hinterlegen. Der **private** Teil bleibt auf Ihrem Computer und geht an niemanden, auch nicht an unser Team.

## Ihren Schlüssel erstellen

Unter macOS, Linux und Windows 10 oder 11 (PowerShell oder das Terminal) genügt ein einziger Befehl:

```
ssh-keygen -t ed25519
```

Übernehmen Sie den vorgeschlagenen Speicherort und wählen Sie eine Passphrase, um den Schlüssel zu schützen. Im Ordner `.ssh` Ihres Benutzerkontos erscheinen zwei Dateien:

* `id_ed25519`: Ihr **privater** Schlüssel, der bei Ihnen bleibt;
* `id_ed25519.pub`: Ihr **öffentlicher** Schlüssel, den Sie hinterlegen. Er passt in eine Zeile, die mit `ssh-ed25519` beginnt.

So zeigen Sie den öffentlichen Schlüssel an, um ihn zu kopieren:

```
cat ~/.ssh/id_ed25519.pub
```

## Ihren Schlüssel im Kundenbereich hinterlegen

1. Öffnen Sie [my.simafri.com](https://my.simafri.com/), Rubrik **VPS**.
2. Fügen Sie in der Karte Ihres Servers Ihren öffentlichen Schlüssel in **Ihre öffentlichen Schlüssel, einer pro Zeile** ein.
3. Klicken Sie auf **Schlüssel speichern**.

Ihr Schlüssel wird innerhalb einer Minute auf dem Server eingerichtet, und die Karte zeigt es an: **Auf dem Server eingerichtet am** gefolgt vom Datum, mit dem Fingerabdruck jedes Schlüssels (`SHA256:...`, derselbe, den `ssh-keygen -lf ~/.ssh/id_ed25519.pub` anzeigt). Hinterlegen Sie ihn während der Vorbereitung des Servers, wird er bei dessen Erstellung eingerichtet.

Gut zu wissen:

* bis zu **10 Schlüssel** pro Server, einer pro Person oder pro Computer;
* akzeptierte Typen: **ed25519**, **RSA** mit mindestens 2048 Bit, **ECDSA** sowie Hardware-Sicherheitsschlüssel (`sk-ssh-ed25519`, `sk-ecdsa`); das PuTTYgen-Format wird ebenfalls akzeptiert;
* jedes Speichern **ersetzt** alle hinterlegten Schlüssel: Fügen Sie alle ein, die Sie behalten möchten;
* der Inhaber des Kontos und die **Verwalter** hinterlegen die Schlüssel; ein **Bearbeiter** sieht sie ein (siehe [Mitglieder und Rollen](https://docs.simafri.com/de/espace-client/membres-et-roles/)).

Die aus dem Kundenbereich hinterlegten Schlüssel belegen einen eigenen Block in der Datei `/root/.ssh/authorized_keys`, zwischen zwei Markierungszeilen `my.simafri.com`. Der Rest der Datei gehört Ihnen: Ein Schlüssel, den Sie selbst außerhalb dieses Blocks hinzufügen, bleibt erhalten.

## Sich verbinden

Die Karte Ihres Servers zeigt den Befehl **SSH-Verbindung**, bereit zum Kopieren:

```
ssh -p 22101 root@203.0.113.10
```

Der Port, zwischen 22100 und 22999, gehört zu Ihrem Server: Übernehmen Sie den aus Ihrer Karte. Der Name Ihres Servers funktioniert auch anstelle der Adresse:

```
ssh -p 22101 root@app.meine-firma.de
```

Bei einem Server, dessen Name unter Ihrer eigenen Domain liegt, antwortet dieser Name, sobald Ihr DNS-Eintrag auf Ihren Server verweist (siehe [Eine Website oder Anwendung online stellen](/de/vps-pro/mettre-en-ligne.md)).

### Über IPv6

Verfügt Ihr Internetanschluss über IPv6, erreichen Sie Ihren Server auch direkt über seine IPv6-Adresse, die in der Karte angezeigt wird, auf dem üblichen SSH-Port:

```
ssh root@2001:db8::101
```

### Eine Abkürzung: die Datei \~/.ssh/config

Um Port und Adresse nicht mehr eintippen zu müssen, fügen Sie Ihrer Datei `~/.ssh/config` einen Block hinzu:

```
Host monvps

    HostName app.meine-firma.de

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Danach genügt `ssh monvps`, und dieselbe Abkürzung dient für `scp`, `rsync`, `git` und Ihren Editor.

## Von Windows aus

Windows 10 und 11 enthalten den OpenSSH-Client: Öffnen Sie PowerShell oder das Terminal und fügen Sie den Befehl aus Ihrer Karte ein. Ihre Abkürzungsdatei liegt unter `C:\Users\<Ihr Name>\.ssh\config`.

Mit **PuTTY** tragen Sie Adresse und Port aus Ihrer Karte unter **Session** ein, den Benutzer `root` unter **Connection > Data** und Ihren privaten Schlüssel im Format `.ppk` unter **Connection > SSH > Auth > Credentials**. Der von PuTTYgen angezeigte öffentliche Schlüssel wird unverändert in Ihrem Kundenbereich hinterlegt.

## Dateien übertragen

Mit demselben Port und demselben Schlüssel:

```
# eine Datei, zum Server

scp -P 22101 archive.tar.gz root@app.meine-firma.de:/srv/



# ein Ordner, synchronisiert

rsync -avz -e "ssh -p 22101" ./build/ root@app.meine-firma.de:/var/www/app/
```

`scp` nimmt den Port mit einem **großen P**. SFTP-Programme wie FileZilla oder WinSCP verbinden sich per **SFTP**, mit der Adresse, dem Port und dem privaten Schlüssel Ihres Computers.

## Aus Ihrem Editor arbeiten

Die Erweiterung **Remote - SSH** von Visual Studio Code öffnet die Ordner Ihres Servers, als lägen sie auf Ihrem Computer: Sie liest Ihre Datei `~/.ssh/config`, und es genügt, `monvps` zu wählen. Die JetBrains-Editoren bieten dieselbe Verbindung über **Remote Development**.

## Einem Kollegen Zugang geben

Zwei Wege, je nachdem, was Sie ihm anvertrauen möchten:

* **ein Administratorzugang**: Fügen Sie seinen öffentlichen Schlüssel neben Ihrem in **Ihre öffentlichen Schlüssel, einer pro Zeile** ein, dann **Schlüssel speichern**;
* **ein eingeschränkter Zugang**: Legen Sie ihm ein Konto auf dem Server an, mit seinem eigenen Schlüssel:

```
adduser camille

mkdir -p /home/camille/.ssh

nano /home/camille/.ssh/authorized_keys   # seinen öffentlichen Schlüssel einfügen

chown -R camille:camille /home/camille/.ssh

chmod 700 /home/camille/.ssh && chmod 600 /home/camille/.ssh/authorized_keys
```

Um einen Zugang zu entziehen, speichern Sie die Schlüsselliste ohne seinen Schlüssel, oder löschen Sie sein Konto mit `deluser camille`.

## Einen verlorenen Schlüssel ersetzen

Ihr Computer hat gewechselt oder Ihr privater Schlüssel ist verschwunden: Erstellen Sie mit `ssh-keygen -t ed25519` einen neuen Schlüssel und hinterlegen Sie dann den neuen öffentlichen Schlüssel in Ihrer Karte, wobei Sie den alten entfernen. Er wird innerhalb einer Minute eingerichtet, und Sie haben wieder Zugang zu Ihrem Server.

## Ihr KI-Assistent

Ein KI-Assistent, der mit Ihrem Simafri-Kundenbereich verbunden ist (MCP-Server `https://mcp.simafri.com/v1/mcp`), liest Ihre Server, ihren Status, ihre Adressen und ihren Verbindungsbefehl und hinterlegt Ihre **öffentlichen** Schlüssel für Sie, mit den Rechten der angemeldeten Person. Ein privater Schlüssel wird dort abgelehnt, wie im Kundenbereich.

## Häufige Fragen

### „Permission denied (publickey)“: Was prüfen?

1. Die Karte Ihres Servers zeigt **Auf dem Server eingerichtet am** gefolgt von einem Datum.
2. Der in der Karte angezeigte Fingerabdruck ist der Ihres Schlüssels: `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. Ihr Befehl nennt wirklich den Port aus Ihrer Karte und den Benutzer `root`.
4. Trägt Ihr Schlüssel einen anderen Namen, geben Sie ihn an: `ssh -i ~/.ssh/ma_cle -p 22101 root@...`.

Beschreiben Sie dann die Lage dem Support, mit dem ausgeführten Befehl und der erhaltenen Meldung: Der Full-Stack-Support hilft Ihnen, den Zugang wiederherzustellen.

### Meine Verbindung bricht ab, wenn ich inaktiv bin.

Fügen Sie `ServerAliveInterval 60` Ihrem Block in `~/.ssh/config` hinzu: Ihr Computer hält die Verbindung aufrecht. Einen langen Befehl starten Sie in `tmux` oder `screen`, die ihn auch nach dem Trennen der Verbindung am Leben halten.

### Der Kundenbereich meldet „Dieser Text enthält einen PRIVATEN Schlüssel“.

Sie haben die Datei ohne `.pub` eingefügt. Fügen Sie den Inhalt der Datei mit der Endung `.pub` ein. Wurde Ihr privater Schlüssel versehentlich an jemanden gesendet, erstellen Sie einen neuen und hinterlegen Sie dessen öffentlichen Schlüssel.

### Kann ich mich mit einem Passwort verbinden?

Ihr Server öffnet sich per SSH-Schlüssel, der sichersten Methode: Ein Schlüssel lässt sich nicht erraten und wird nie übertragen. Hinterlegen Sie einen Schlüssel pro Person, und jede behält ihren eigenen Zugang.
