# Terminal SSH dans le navigateur pour votre serveur

> Ouvrez un shell SSH sécurisé sur votre serveur dans le navigateur, en utilisateur système ou en root : fonctionnement, droits d'accès et journalisation.

La page **Terminal** vous donne un shell SSH complet sur votre serveur, directement dans le navigateur. Vous n'avez besoin ni d'un client SSH, ni d'une clé sur votre ordinateur, ni de l'adresse du serveur : Vimonto Deploy ouvre la connexion avec la clé propre au serveur.

Utilisez-la pour exécuter rapidement une commande, lire un log avec `tail -f`, lancer `php artisan tinker` ou inspecter le serveur quand quelque chose ne va pas. Vous la trouvez dans la barre latérale du serveur sous **Terminal**, ou via **Terminal web** dans l'en-tête du serveur.

![Le terminal dans le navigateur connecté à un serveur en tant qu'utilisateur système, avec le choix d'utilisateur au-dessus et la liste des sessions récentes en dessous](https://ops.vimonto.com/docs-media/fr/server-terminal.webp?v=161e760d "Le terminal dans le navigateur")

## Ouvrir un terminal

1. Ouvrez le serveur et choisissez **Terminal** dans la barre latérale.
2. Choisissez l'utilisateur avec lequel vous connecter : l'utilisateur système du serveur (par exemple `vimonto`) ou `root`.
3. Cliquez sur **Connecter**.

Après un instant, le statut affiche **Connecté en tant que** suivi de l'utilisateur et du serveur, par exemple `vimonto@web-1`, et vous pouvez taper. Collez avec Cmd+V sur macOS ou Ctrl+V sur Windows et Linux. Le terminal suit la taille de la fenêtre de votre navigateur.

Pour terminer la session, cliquez sur **Déconnecter**, tapez `exit` ou fermez l'onglet. Pour vous reconnecter, cliquez sur **Reconnecter**.

### Avec quel utilisateur vous connectez-vous ?

| Utilisateur | Quand l'utiliser |
| --- | --- |
| L'utilisateur système (`vimonto` par défaut) | Le travail quotidien : vos sites, vos déploiements et vos commandes Artisan se trouvent ici. Il peut utiliser `sudo` avec le mot de passe sudo reçu à la création du serveur. |
| `root` | Le travail d'administration, comme installer des paquets ou modifier la configuration du système. |

L'utilisateur est fixé pour une session. Pour en changer, cliquez d'abord sur **Déconnecter**, puis choisissez l'autre utilisateur et reconnectez-vous.

> [!NOTE]
> Un [site isolé](https://ops.vimonto.com/docs/fr/sites/site-settings#isolation-des-sites) tourne sous son propre utilisateur Linux. Pour travailler sous cet utilisateur, connectez-vous en `root` et exécutez `su - username`, ou utilisez `sudo -u username` depuis l'utilisateur système.

## Comment fonctionne le terminal dans le navigateur ?

Un navigateur ne peut pas ouvrir lui-même une connexion SSH : Vimonto Deploy fait donc tourner un petit pont de terminal, un service séparé placé entre votre navigateur et le serveur.

1. Quand vous cliquez sur **Connecter**, l'application vérifie votre permission et crée un **ticket à usage unique**, valable 30 secondes. Seul un hash du ticket est stocké.
2. Votre navigateur ouvre une WebSocket sécurisée vers le pont de terminal et lui transmet le ticket. Le navigateur ne reçoit jamais la clé privée ni l'adresse du serveur.
3. Le pont échange le ticket auprès de l'application. L'application vérifie à nouveau que vous avez toujours accès, puis donne au pont ce dont il a besoin pour se connecter : l'adresse du serveur, le port SSH, la clé privée et la **clé d'hôte connue**. Un ticket ne fonctionne qu'une fois ; une seconde utilisation est refusée.
4. Le pont se connecte au serveur en SSH. Il n'accepte que la clé d'hôte que Vimonto Deploy a enregistrée lors de sa première connexion au serveur. Si le serveur présente une clé différente, le pont refuse de se connecter.
5. Les frappes et la sortie circulent entre votre navigateur et le serveur jusqu'à la fin de la session.

La clé privée ne reste dans la mémoire du pont que le temps de la session.

## Qui peut utiliser le terminal ?

Un terminal donne un accès complet au serveur : il a donc sa propre permission, distincte de la gestion des serveurs. Ces rôles en disposent :

| Rôle | Terminal |
| --- | --- |
| Propriétaire | Oui |
| Administrateur | Oui |
| Manager | Oui |
| Développeur | Oui |
| Lecteur | Non |

Les membres sans cette permission voient **Pas de terminal pour votre rôle** et peuvent demander un autre rôle à un administrateur. Consultez [membres et rôles](https://ops.vimonto.com/docs/fr/organization/members-and-roles).

La permission est vérifiée quand vous cliquez sur **Connecter**, puis à nouveau quand le pont échange le ticket : un membre dont le rôle vient de changer ne peut donc pas utiliser un ticket qu'il avait déjà.

Le terminal ne s'ouvre que sur un serveur actif. Vimonto Deploy doit aussi connaître la clé d'hôte SSH du serveur, qu'il apprend lors de sa première connexion. Sur un [VPS personnalisé](https://ops.vimonto.com/docs/fr/servers/custom-vps) connecté mais jamais utilisé, lancez d'abord une action, comme ouvrir la page [Services](https://ops.vimonto.com/docs/fr/servers/services).

## Qu'est-ce qui est journalisé ?

Vimonto Deploy enregistre **qui** a eu un shell, **sous quel utilisateur**, **quand** et **pendant combien de temps**. Il n'enregistre jamais ce que vous tapez ni ce que le serveur affiche.

- **Sessions récentes**, en bas de la page Terminal, liste les dix dernières sessions avec le nom du membre, l'utilisateur de connexion, la durée et l'heure de début. Une session toujours en cours est marquée **Actif**.
- À la fin d'une session, une entrée comme *Terminal en tant que root sur web-1* est ajoutée à l'activité du serveur et à la [page Activité](https://ops.vimonto.com/docs/fr/organization/activity) de l'organisation, avec la façon dont la session s'est terminée : fermée dans le navigateur, terminée sur le serveur, fermée après une période sans saisie, ou arrêtée par une erreur.

## Limites de temps

| Limite | Valeur |
| --- | --- |
| Validité du ticket | 30 secondes, usage unique |
| Aucune saisie | La connexion se ferme après 15 minutes sans frappe (valeur par défaut ; votre installation peut utiliser une autre valeur, affichée sous le terminal). |
| Durée maximale d'une session | 8 heures |

Quand une session se ferme pour l'une de ces raisons, la ligne de statut indique pourquoi. Cliquez sur **Reconnecter** pour démarrer une nouvelle session.

## Dépannage

| Message | Signification |
| --- | --- |
| Ce ticket a expiré ou a déjà été utilisé. Reconnectez-vous. | Le navigateur a mis plus de 30 secondes à se connecter, ou le ticket a déjà servi. Cliquez sur **Reconnecter**. |
| Vous n'avez pas (ou plus) accès à un terminal sur ce serveur. | Votre rôle a changé, ou le serveur n'est plus actif. |
| La clé d'hôte SSH du serveur a changé ; nous ne nous connecterons pas. | Le serveur présente une clé d'hôte différente. Si vous avez réinstallé le serveur, utilisez **Oublier la clé d'hôte** dans les [paramètres du serveur](https://ops.vimonto.com/docs/fr/servers/server-settings). Sinon, quelqu'un intercepte peut-être la connexion. |
| Le serveur refuse notre clé. | La clé du serveur a été retirée de `authorized_keys`. |
| Le serveur est inaccessible via SSH. | Le serveur est éteint, ou le pare-feu ou le port SSH bloque la connexion. Vérifiez les réglages [réseau](https://ops.vimonto.com/docs/fr/servers/network). |
| Le serveur de terminal est inaccessible. | Le pont de terminal ne tourne pas ou n'est pas joignable depuis votre navigateur. |

## Questions fréquentes

### Le terminal dans le navigateur est-il sécurisé ?

Oui. Votre navigateur ne détient jamais qu'un ticket qui fonctionne une seule fois et expire au bout de 30 secondes. La clé privée du serveur n'atteint jamais le navigateur, la connexion est refusée quand la clé d'hôte du serveur ne correspond pas à celle connue, et votre permission est vérifiée deux fois. Les sessions se ferment après une période sans saisie.

### Puis-je utiliser mon propre client SSH à la place ?

Oui. Ajoutez votre clé publique dans [clés SSH](https://ops.vimonto.com/docs/fr/connections/ssh-keys) et utilisez **Se connecter en SSH**, puis **Copier la commande SSH** dans l'en-tête du serveur, par exemple `ssh vimonto@203.0.113.10`.

### Vimonto Deploy enregistre-t-il mes commandes ?

Non. Les frappes et la sortie ne sont jamais enregistrées. Seule la session elle-même est journalisée : qui, sous quel utilisateur, quand et combien de temps.

### Puis-je me connecter en root ?

Oui, choisissez `root` avant de vous connecter. Root n'a pas de mot de passe ; il se connecte avec la clé du serveur.
