Le Gemini CLI de Google est un agent compétent dans un terminal, et comme les autres agents de code, il doit tôt ou tard quitter votre portable et toucher un vrai serveur — redémarrer un service, suivre un journal, lancer le déploiement sur la machine elle-même. Le raccourci tentant est de le laisser exécuter ssh directement : le CLI exécute déjà des commandes shell, donc si une clé est déverrouillée dans ~/.ssh ou dans un ssh-agent actif, ssh prod fonctionne pour lui, que vous l’ayez voulu ou non. C’est tout le problème en une ligne — vous avez donné un accès serveur complet par défaut.
Le Gemini CLI a une voie plus propre intégrée : il parle MCP (en anglais), le même protocole qu’utilisent Claude Code, Cursor et Codex (en anglais). Termalin est un client SSH avec un serveur MCP intégré : vous pointez Gemini vers ce serveur et il travaille réellement sur vos hôtes — sans que l’agent ne détienne jamais de clé. Une vingtaine de minutes, un hôte.
Ce qu’il vous faut
- Termalin — l’application de bureau ; le forfait Free suffit. C’est son serveur MCP intégré qui dialogue avec Gemini.
- Gemini CLI, sur la même machine.
- Un hôte enregistré dans Termalin — quelque chose de peu risqué pour le premier essai.
Étape 1 — activez l’accès de l’agent et définissez une politique
L’accès de l’agent est désactivé par défaut. Dans Termalin, ouvrez Paramètres → MCP, activez-le, et cochez les hôtes que Gemini peut atteindre. Rien en dehors de cette liste n’existe du point de vue de l’agent — un nouvel hôte est une décision que vous prenez dans l’app, pas quelque chose que l’agent peut obtenir par la parole.
Sous le capot, Termalin écrit un inventaire d’hôtes pour le serveur MCP avec des entrées d’authentification réservées à l’agent — aucun mot de passe ni clé n’atterrit dans ce fichier — et l’authentification reste au gardien des clés de l’app : vous déverrouillez une fois, et Termalin signe à la place de l’agent. Il n’y a aucun fichier de clé que Gemini puisse lire, donc rien à faire fuiter, et la porte dérobée ~/.ssh évoquée plus haut se referme avec.
Pendant que vous y êtes, définissez la politique de l’agent pour chaque hôte : accès complet, une liste de commandes autorisées, ou bloqué. Commencez par une liste de commandes autorisées pour tout ce qui compte pour vous — la configuration du moindre privilège fait l’objet de son propre petit article (en anglais).
Étape 2 — déclarez le serveur dans les réglages de Gemini
Le Gemini CLI lit les serveurs MCP depuis l’objet mcpServers de son fichier de réglages — ~/.gemini/settings.json pour tous vos projets, ou un .gemini/settings.json local au projet. Ajoutez une seule entrée pointant vers le binaire termalin-mcp fourni :
{
"mcpServers": {
"termalin": {
"command": "<path>/termalin-mcp"
}
}
}
C’est toute l’intégration. Redémarrez le Gemini CLI (ou rechargez ses serveurs MCP), et les outils apparaissent pour l’agent : hosts_list, ssh_exec, des sessions persistantes (session_open / session_exec), des lectures et écritures SFTP, et des redirections de port. Lancez /mcp dans Gemini pour confirmer que le serveur est connecté et voir les outils qu’il expose. La liste complète des outils (en anglais) les documente tous.
Si vous préférez ne pas câbler MCP du tout, il existe une option plus légère : Termalin a un onglet de terminal local, vous pouvez donc simplement taper gemini et lancer le CLI directement dans l’app, à côté de vos sessions SSH. Cela vous donne Gemini dans la même fenêtre — mais c’est la configuration MCP ci-dessus qui permet à Gemini d’agir sur vos serveurs via le gardien, et c’est la partie qui garde vos clés hors de sa portée.
Étape 3 — confiez-lui une vraie corvée
Oubliez la démo. Confiez-lui quelque chose de réel :
Le déploiement sur staging-1 est terminé mais le health check n’arrête pas d’osciller. Trouvez pourquoi et corrigez ça.
Gemini appelle hosts_list, voit staging-1, ouvre une session, et commence à tirer sur les fils — l’état du service, les cent dernières lignes de journal, la diff de config par rapport à ce qui tourne. Il propose un correctif, l’applique dans les limites de la politique que vous avez définie, et confirme que le contrôle repasse au vert.
Ce qui rend cela confortable plutôt qu’angoissant, c’est que rien de tout ça n’est caché. Chaque session que Gemini ouvre apparaît dans Termalin comme un onglet de terminal en direct, et la grille de surveillance (en anglais) place toutes les sessions ouvertes côte à côte, avec les vignettes pilotées par l’agent qui s’illuminent. Vous voyez les commandes arriver au fur et à mesure, et vous pouvez intervenir à tout moment.
Où sont les limites
Des réglages par défaut à connaître avant de le pointer vers quoi que ce soit d’important :
- Vos clés n’entrent jamais dans l’environnement de Gemini. Le gardien signe ; l’agent demande. Révoquer l’accès est un interrupteur dans les Paramètres, pas une rotation de clés sur tout votre parc.
- Sa portée, c’est la liste des hôtes que vous avez cochés à l’étape 1, et la politique de commandes de chaque hôte borne ce qu’il peut y exécuter. « Accès complet » sur la production reste un shell complet — réglez-le en connaissance de cause.
- Taper dans votre session est à part. Par défaut, Gemini ouvre ses propres sessions ; rejoindre une session que vous avez déjà ouverte a son propre interrupteur de consentement.
- Chaque commande est consignée. Les enregistrements capturent la sortie uniquement — jamais les frappes — et chaque commande de l’agent est marquée comme la sienne (en anglais) dans le journal d’audit, avec l’appareil et l’IP d’où elle provient.
Quand Gemini tourne dans le cloud
Si Gemini tourne là où votre bureau n’est pas — un job CI, un bac à sable cloud — le binaire local n’est pas joignable, mais l’endpoint MCP hébergé de Termalin l’est. Créez une clé API dans l’espace web, limitez son périmètre aux bons serveurs, mettez-la en lecture seule ou sur une liste de commandes autorisées, donnez-lui une expiration, et pointez l’agent vers https://termal.in/api/v1/mcp. Il atteint vos serveurs ajoutés via un Connector sans clé, en authentifiant chaque exécution avec un certificat à courte durée — le schéma CI/CD complet est ici (en anglais).
L’habitude qui fait que ça dure
Traitez la première semaine comme l’intégration d’un coéquipier rapide. Gardez la grille de surveillance ouverte, confiez à Gemini des corvées avec un état « terminé » clair, et lisez comment il y parvient avant d’élargir quoi que ce soit. Le compromis est tout l’intérêt : Gemini gagne une vraie portée sur vos serveurs, et vous gardez la seule chose — les clés — qui ne peut pas être reprise une fois sortie.
Termalin est un client SSH multiplateforme avec un serveur MCP intégré, un gardien des clés et une politique par hôte pour l’agent — téléchargez-le, lisez la référence MCP, ou voyez comment il gère les clés.