# SSH-Terminal im Browser für deinen Server

> Öffne eine sichere SSH-Shell auf deinem Server im Browser, als Systembenutzer oder root. So verbindet sich das Terminal, wer es nutzt und was geloggt wird.

Die Seite **Terminal** gibt dir eine vollwertige SSH-Shell auf deinem Server, direkt im Browser. Du brauchst keinen SSH-Client, keinen Key auf deinem eigenen Computer und nicht die Adresse des Servers: Vimonto Deploy öffnet die Verbindung mit dem eigenen Key des Servers.

Nutze es, um schnell einen Befehl auszuführen, ein Log mit `tail -f` zu lesen, `php artisan tinker` zu starten oder dich umzusehen, wenn etwas schiefgeht. Du findest es in der Seitenleiste des Servers unter **Terminal** oder über **Web-Terminal** in der Serverkopfzeile.

![Das Browser-Terminal, als Systembenutzer mit einem Server verbunden, mit der Benutzerauswahl darüber und einer Liste der letzten Sitzungen darunter](https://ops.vimonto.com/docs-media/de/server-terminal.webp?v=161e760d "Das Browser-Terminal")

## Ein Terminal öffnen

1. Öffne den Server und wähle **Terminal** in der Seitenleiste.
2. Wähle, als wer du dich anmeldest: als Systembenutzer des Servers (zum Beispiel `vimonto`) oder als `root`.
3. Klicke auf **Verbinden**.

Nach einem Moment zeigt der Status **Verbunden als** gefolgt von Benutzer und Server, zum Beispiel `vimonto@web-1`, und du kannst tippen. Füge mit Cmd+V unter macOS oder Strg+V unter Windows und Linux ein. Das Terminal passt sich der Größe deines Browserfensters an.

Um die Sitzung zu beenden, klicke auf **Trennen**, tippe `exit` oder schließe den Tab. Um dich erneut zu verbinden, klicke auf **Neu verbinden**.

### Als welcher Benutzer meldest du dich an?

| Benutzer | Wann du ihn verwendest |
| --- | --- |
| Der Systembenutzer (standardmäßig `vimonto`) | Für die tägliche Arbeit: Hier liegen deine Sites, Deployments und Artisan-Befehle. Er kann `sudo` mit dem sudo-Passwort nutzen, das du beim Erstellen des Servers bekommen hast. |
| `root` | Für administrative Arbeit, etwa Pakete installieren oder die Systemkonfiguration bearbeiten. |

Der Benutzer steht für eine Sitzung fest. Um zu wechseln, klicke zuerst auf **Trennen**, wähle dann den anderen Benutzer und verbinde dich erneut.

> [!NOTE]
> Eine [isolierte Site](https://ops.vimonto.com/docs/de/sites/site-settings#website-isolation) läuft als eigener Linux-Benutzer. Um als dieser Benutzer zu arbeiten, melde dich als `root` an und führe `su - username` aus, oder verwende `sudo -u username` als Systembenutzer.

## Wie funktioniert das Browser-Terminal?

Ein Browser kann selbst keine SSH-Verbindung öffnen. Deshalb betreibt Vimonto Deploy eine kleine Terminal-Bridge: einen separaten Dienst, der zwischen deinem Browser und dem Server sitzt.

1. Wenn du auf **Verbinden** klickst, prüft die App deine Berechtigung und erstellt ein **Einmal-Ticket**, das 30 Sekunden gültig ist. Gespeichert wird nur ein Hash des Tickets.
2. Dein Browser öffnet einen sicheren WebSocket zur Terminal-Bridge und übergibt das Ticket. Der Browser erhält nie den privaten Key oder die Adresse des Servers.
3. Die Bridge löst das Ticket bei der App ein. Die App prüft erneut, ob du noch Zugriff hast, und gibt der Bridge dann, was sie zum Verbinden braucht: Adresse, SSH-Port, privaten Key und **bekannten Host-Key** des Servers. Ein Ticket funktioniert einmal; eine zweite Verwendung wird abgelehnt.
4. Die Bridge verbindet sich per SSH mit dem Server. Sie akzeptiert nur den Host-Key, den Vimonto Deploy bei der ersten Verbindung mit dem Server gespeichert hat. Zeigt der Server einen anderen Key, verweigert die Bridge die Verbindung.
5. Tastatureingaben und Ausgabe fließen zwischen deinem Browser und dem Server, bis die Sitzung endet.

Der private Key bleibt nur für die Dauer der Sitzung im Arbeitsspeicher der Bridge.

## Wer darf das Terminal nutzen?

Ein Terminal gibt vollen Zugriff auf den Server. Deshalb hat es eine eigene Berechtigung, getrennt von der Serververwaltung. Diese Rollen haben sie:

| Rolle | Terminal |
| --- | --- |
| Owner | Ja |
| Administrator | Ja |
| Manager | Ja |
| Developer | Ja |
| Betrachter | Nein |

Mitglieder ohne die Berechtigung sehen **Kein Terminal für deine Rolle** und können einen Administrator um eine andere Rolle bitten. Siehe [Mitglieder und Rollen](https://ops.vimonto.com/docs/de/organization/members-and-roles).

Die Berechtigung wird geprüft, wenn du auf **Verbinden** klickst, und erneut, wenn die Bridge das Ticket einlöst. Ein Mitglied, dessen Rolle gerade geändert wurde, kann ein Ticket, das es schon hatte, also nicht mehr verwenden.

Das Terminal öffnet sich nur auf einem aktiven Server. Vimonto Deploy muss außerdem den SSH-Host-Key des Servers kennen, den es bei der ersten Verbindung erfährt. Bei einem [eigenen VPS](https://ops.vimonto.com/docs/de/servers/custom-vps), der verbunden, aber nie genutzt wurde, führe zuerst eine Aktion aus, etwa die Seite [Services](https://ops.vimonto.com/docs/de/servers/services) öffnen.

## Was wird protokolliert?

Vimonto Deploy erfasst, **wer** eine Shell hatte, **als welcher Benutzer**, **wann** und **wie lange**. Was du tippst oder was der Server ausgibt, wird nie gespeichert.

- **Letzte Sitzungen** unten auf der Seite Terminal listet die letzten zehn Sitzungen mit dem Namen des Mitglieds, dem Login-Benutzer, der Dauer und der Startzeit. Eine laufende Sitzung ist mit **Aktiv** markiert.
- Wenn eine Sitzung endet, wird ein Eintrag wie *Terminal als root auf web-1* zur Aktivität des Servers und zur [Aktivitätsseite](https://ops.vimonto.com/docs/de/organization/activity) der Organisation hinzugefügt, mit der Angabe, wie die Sitzung endete: im Browser geschlossen, auf dem Server beendet, nach einer Zeit ohne Eingabe geschlossen oder durch einen Fehler abgebrochen.

## Zeitlimits

| Limit | Wert |
| --- | --- |
| Gültigkeit des Tickets | 30 Sekunden, einmalig |
| Keine Eingabe | Die Verbindung wird nach 15 Minuten ohne Tastendruck geschlossen (Standardwert; deine Installation kann einen anderen Wert nutzen, der unter dem Terminal angezeigt wird). |
| Maximale Sitzungsdauer | 8 Stunden |

Wenn eine Sitzung aus einem dieser Gründe geschlossen wird, nennt die Statuszeile den Grund. Klicke auf **Neu verbinden**, um eine neue Sitzung zu starten.

## Fehlerbehebung

| Meldung | Was sie bedeutet |
| --- | --- |
| Dieses Ticket ist abgelaufen oder wurde bereits verwendet. Verbinde dich erneut. | Der Browser hat länger als 30 Sekunden zum Verbinden gebraucht, oder das Ticket wurde schon verwendet. Klicke auf **Neu verbinden**. |
| Du hast (nicht mehr) Zugriff auf ein Terminal auf diesem Server. | Deine Rolle hat sich geändert, oder der Server ist nicht mehr aktiv. |
| Der SSH-Host-Key des Servers hat sich geändert; wir stellen keine Verbindung her. | Der Server zeigt einen anderen Host-Key. Wenn du den Server neu installiert hast, verwende **Host-Key vergessen** in den [Servereinstellungen](https://ops.vimonto.com/docs/de/servers/server-settings). Andernfalls fängt womöglich jemand die Verbindung ab. |
| Der Server lehnt unseren Schlüssel ab. | Der Key des Servers wurde aus `authorized_keys` entfernt. |
| Der Server ist über SSH nicht erreichbar. | Der Server ist aus, oder die Firewall oder der SSH-Port blockiert die Verbindung. Prüfe die Einstellungen unter [Netzwerk](https://ops.vimonto.com/docs/de/servers/network). |
| Der Terminal-Server ist nicht erreichbar. | Die Terminal-Bridge läuft nicht oder ist von deinem Browser aus nicht erreichbar. |

## Häufig gestellte Fragen

### Ist das Browser-Terminal sicher?

Ja. Dein Browser hat immer nur ein Ticket, das einmal funktioniert und nach 30 Sekunden abläuft. Der private Key des Servers erreicht den Browser nie, die Verbindung wird abgelehnt, wenn der Host-Key des Servers nicht zum bekannten passt, und deine Berechtigung wird zweimal geprüft. Sitzungen werden nach einer Zeit ohne Eingabe geschlossen.

### Kann ich stattdessen meinen eigenen SSH-Client verwenden?

Ja. Füge deinen öffentlichen Key unter [SSH-Schlüssel](https://ops.vimonto.com/docs/de/connections/ssh-keys) hinzu und verwende in der Serverkopfzeile **Mit SSH anmelden** und dann **SSH-Befehl kopieren**, zum Beispiel `ssh vimonto@203.0.113.10`.

### Zeichnet Vimonto Deploy meine Befehle auf?

Nein. Tastatureingaben und Ausgabe werden nie gespeichert. Protokolliert wird nur die Sitzung selbst: wer, als welcher Benutzer, wann und wie lange.

### Kann ich mich als root anmelden?

Ja, wähle vor dem Verbinden `root`. Root hat kein Passwort; die Anmeldung erfolgt mit dem Key des Servers.
