# SSH-terminal in de browser voor je server

> Open een veilige SSH-shell op je server in de browser, als systeemgebruiker of als root. Zo verbindt de terminal, wie hem mag gebruiken en wat wordt vastgelegd.

De pagina **Terminal** geeft je een volledige SSH-shell op je server, gewoon in de browser. Je hebt geen SSH-client, geen sleutel op je eigen computer en niet het adres van de server nodig: Vimonto Deploy opent de verbinding met de eigen sleutel van de server.

Gebruik hem om snel een opdracht uit te voeren, een log te lezen met `tail -f`, `php artisan tinker` te draaien of rond te kijken als er iets misgaat. Je vindt hem in de zijbalk van de server onder **Terminal**, of via **Webterminal** in de serverheader.

![De browserterminal verbonden met een server als systeemgebruiker, met de gebruikerskeuze erboven en een lijst met recente sessies eronder](https://ops.vimonto.com/docs-media/nl/server-terminal.webp?v=161e760d "De browserterminal")

## Een terminal openen

1. Open de server en kies **Terminal** in de zijbalk.
2. Kies als wie je inlogt: de systeemgebruiker van de server (bijvoorbeeld `vimonto`) of `root`.
3. Klik op **Verbinden**.

Na een moment staat er **Verbonden als** met daarachter de gebruiker en server, bijvoorbeeld `vimonto@web-1`, en kun je typen. Plak met Cmd+V op macOS of Ctrl+V op Windows en Linux. De terminal past zich aan de grootte van je browservenster aan.

Om de sessie te beëindigen klik je op **Ontkoppelen**, typ je `exit` of sluit je het tabblad. Om opnieuw te verbinden klik je op **Opnieuw verbinden**.

### Als welke gebruiker log je in?

| Gebruiker | Wanneer gebruik je hem |
| --- | --- |
| De systeemgebruiker (standaard `vimonto`) | Dagelijks werk: je sites, deploys en Artisan-commando's staan hier. Hij kan `sudo` gebruiken met het sudo-wachtwoord dat je kreeg toen de server werd aangemaakt. |
| `root` | Beheerwerk, zoals pakketten installeren of systeemconfiguratie aanpassen. |

De gebruiker ligt vast voor een sessie. Om te wisselen klik je eerst op **Ontkoppelen**, kies je de andere gebruiker en verbind je opnieuw.

> [!NOTE]
> Een [geïsoleerde site](https://ops.vimonto.com/docs/nl/sites/site-settings#website-isolatie) draait als eigen Linux-gebruiker. Om als die gebruiker te werken, log je in als `root` en voer je `su - username` uit, of gebruik je `sudo -u username` vanaf de systeemgebruiker.

## Hoe werkt de browserterminal?

Een browser kan zelf geen SSH-verbinding openen, dus Vimonto Deploy draait een kleine terminalbrug: een aparte service tussen je browser en de server.

1. Als je op **Verbinden** klikt, controleert de app je recht en maakt een **ticket voor eenmalig gebruik**, 30 seconden geldig. Alleen een hash van het ticket wordt opgeslagen.
2. Je browser opent een beveiligde WebSocket naar de terminalbrug en geeft het ticket af. De browser krijgt nooit de privésleutel of het adres van de server.
3. De brug wisselt het ticket in bij de app. De app controleert opnieuw of je nog toegang hebt en geeft de brug dan wat hij nodig heeft om te verbinden: het adres, de SSH-poort, de privésleutel en de **bekende host-sleutel** van de server. Een ticket werkt één keer; een tweede gebruik wordt geweigerd.
4. De brug verbindt via SSH met de server. Hij accepteert alleen de host-sleutel die Vimonto Deploy opsloeg toen het voor het eerst met de server verbond. Toont de server een andere sleutel, dan weigert de brug te verbinden.
5. Toetsaanslagen en uitvoer stromen tussen je browser en de server tot de sessie eindigt.

De privésleutel blijft alleen zo lang als de sessie duurt in het geheugen van de brug.

## Wie mag de terminal gebruiken?

Een terminal geeft volledige toegang tot de server, dus hij heeft een eigen recht, los van het beheren van servers. Deze rollen hebben het:

| Rol | Terminal |
| --- | --- |
| Eigenaar | Ja |
| Beheerder | Ja |
| Manager | Ja |
| Developer | Ja |
| Kijker | Nee |

Leden zonder dit recht zien **Geen terminal voor jouw rol** en kunnen een beheerder om een andere rol vragen. Zie [leden en rollen](https://ops.vimonto.com/docs/nl/organization/members-and-roles).

Het recht wordt gecontroleerd als je op **Verbinden** klikt en opnieuw als de brug het ticket inwisselt, zodat een lid van wie de rol net is gewijzigd een ticket dat hij al had niet kan gebruiken.

De terminal opent alleen op een actieve server. Vimonto Deploy moet ook de SSH-host-sleutel van de server kennen, die het leert bij de eerste verbinding. Op een [eigen VPS](https://ops.vimonto.com/docs/nl/servers/custom-vps) die verbonden is maar nooit gebruikt, voer je eerst een actie uit, zoals de pagina [Services](https://ops.vimonto.com/docs/nl/servers/services) openen.

## Wat wordt vastgelegd?

Vimonto Deploy legt vast **wie** een shell had, **als welke gebruiker**, **wanneer** en **hoe lang**. Wat je typt of wat de server toont, wordt nooit opgeslagen.

- **Recente sessies** onderaan de pagina Terminal toont de laatste tien sessies met de naam van het lid, de inloggebruiker, de duur en de starttijd. Een sessie die nog loopt, is gemarkeerd als **Actief**.
- Als een sessie eindigt, komt er een item zoals *Terminal als root op web-1* in de activiteit van de server en op de [activiteitenpagina](https://ops.vimonto.com/docs/nl/organization/activity) van de organisatie, met hoe de sessie eindigde: gesloten in de browser, beëindigd op de server, gesloten na een periode zonder invoer, of gestopt door een fout.

## Tijdslimieten

| Limiet | Waarde |
| --- | --- |
| Geldigheid van het ticket | 30 seconden, eenmalig te gebruiken |
| Geen invoer | De verbinding sluit na 15 minuten zonder toetsaanslag (de standaard; je installatie kan een andere waarde gebruiken, die onder de terminal staat). |
| Maximale sessieduur | 8 uur |

Sluit een sessie om een van deze redenen, dan zegt de statusregel waarom. Klik op **Opnieuw verbinden** om een nieuwe sessie te starten.

## Problemen oplossen

| Melding | Wat het betekent |
| --- | --- |
| Dit ticket is verlopen of al gebruikt. Verbind opnieuw. | De browser deed er langer dan 30 seconden over om te verbinden, of het ticket is al gebruikt. Klik op **Opnieuw verbinden**. |
| Je hebt geen toegang (meer) tot een terminal op deze server. | Je rol is gewijzigd, of de server is niet meer actief. |
| De SSH-sleutel van de server is veranderd; we maken geen verbinding. | De server toont een andere host-sleutel. Heb je de server opnieuw geïnstalleerd, gebruik dan **Host-sleutel vergeten** in de [serverinstellingen](https://ops.vimonto.com/docs/nl/servers/server-settings). Anders onderschept iemand misschien de verbinding. |
| De server weigert onze sleutel. | De sleutel van de server is uit `authorized_keys` verwijderd. |
| De server is niet bereikbaar via SSH. | De server staat uit, of de firewall of SSH-poort blokkeert de verbinding. Controleer de instellingen bij [netwerk](https://ops.vimonto.com/docs/nl/servers/network). |
| De terminalserver is niet bereikbaar. | De terminalbrug draait niet of is niet bereikbaar vanaf je browser. |

## Veelgestelde vragen

### Is de browserterminal veilig?

Ja. Je browser heeft alleen ooit een ticket dat één keer werkt en na 30 seconden verloopt. De privésleutel van de server bereikt de browser nooit, de verbinding wordt geweigerd als de host-sleutel van de server niet overeenkomt met de bekende, en je recht wordt twee keer gecontroleerd. Sessies sluiten na een periode zonder invoer.

### Kan ik in plaats daarvan mijn eigen SSH-client gebruiken?

Ja. Voeg je publieke sleutel toe onder [SSH-sleutels](https://ops.vimonto.com/docs/nl/connections/ssh-keys) en gebruik **Inloggen met SSH** en dan **SSH-commando kopiëren** in de serverheader, bijvoorbeeld `ssh vimonto@203.0.113.10`.

### Legt Vimonto Deploy mijn commando's vast?

Nee. Toetsaanslagen en uitvoer worden nooit opgeslagen. Alleen de sessie zelf wordt vastgelegd: wie, als welke gebruiker, wanneer en hoe lang.

### Kan ik inloggen als root?

Ja, kies `root` voordat je verbindt. Root heeft geen wachtwoord; hij logt in met de sleutel van de server.
