DRAFT — Preliminary version, do not share. · Version préliminaire, ne pas partager.

Terminal distant et redirection de port

Ouvrez un shell sur un appareil depuis votre navigateur, ou accédez depuis votre poste de travail à n'importe quel service qui s'y exécute (SSH, une interface web locale, une base de données). La session passe par la connexion sécurisée déjà établie entre l'appareil et Fundamentum : vous n'ouvrez donc aucun port entrant sur l'appareil ni sur son réseau, et cela fonctionne derrière un NAT et des pare-feu.

Le terminal du Hub et la CLI fun se connectent à Fundamentum via WebSocket ; Fundamentum relaie la session par la connexion MQTTS sortante ouverte par l'appareil, de sorte que localhost:2222 sur le poste de travail atteint le port 22 de l'appareil sans port entrant derrière le NAT ou le pare-feu

Avant de commencer

Fonctionnement

your browser or workstation ──▶ Fundamentum ──▶ device's MQTT connection ──▶ Edge ──▶ local port or shell

Les deux fonctionnalités reposent sur la connexion sortante que l'appareil maintient déjà ouverte vers le broker MQTT. Chaque session est authentifiée avec votre identité Fundamentum et vérifiée par rapport à vos permissions.

Ouvrir un terminal distant dans le Hub

  1. Dans le Hub, ouvrez la page de l'appareil.
  2. Sélectionnez l'onglet Terminal.
  3. Choisissez la méthode de connexion edge daemon.
  4. Saisissez la commande à exécuter, par exemple /bin/bash, puis connectez-vous.

Un terminal s'ouvre dans le navigateur. La fermeture de l'onglet ou la perte de la connexion met fin à la session : elle ne se reconnecte pas d'elle-même, ouvrez-en donc une nouvelle.

Rediriger un port avec la CLI

fun devices port-forward (alias fun devices pf) associe un port de l'appareil à un port de votre machine :

fun devices port-forward -p <project-id> -r <registry-id> -s <serial-number> -l 2222 -d 22
Option Signification
-p, --project ID du projet
-r, --registry ID du registre
-s, --serial Numéro de série de l'appareil : lettres minuscules, chiffres, _ et -
-l, --local-port Port à ouvrir sur votre machine
-d, --remote-port Port sur l'appareil. Un service doit y être à l'écoute, sinon la commande échoue
--context Contexte fun à utiliser, si vous en avez plusieurs

Toutes les options, sauf --context, sont obligatoires. La commande s'exécute jusqu'à ce que vous appuyiez sur une touche.

Pendant son exécution, utilisez le port local comme si le service se trouvait sur votre machine. Par exemple, pour vous connecter en SSH à l'appareil :

ssh -p 2222 <device-user>@localhost

Ou ouvrez à l'adresse http://localhost:8080 l'interface web locale d'un appareil redirigée avec -l 8080 -d 80.

Utiliser la redirection dans des scripts et en CI

Pour un usage non interactif, authentifiez la CLI avec un jeton de compte de service via des variables d'environnement plutôt qu'avec fun login. Consultez La CLI fun et Rôles et permissions.

Dépannage

Symptôme Vérification
La commande échoue immédiatement Un service est à l'écoute sur --remote-port sur l'appareil
Aucune connexion à l'appareil L'appareil est en ligne et son composant Edge a la redirection de port activée
Accès refusé Votre rôle couvre le projet et ses appareils

Étapes suivantes