<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.lololand.org/api.php?hidebots=1&amp;urlversion=1&amp;days=7&amp;limit=50&amp;action=feedrecentchanges&amp;feedformat=atom</id>
	<title>Loic Wiki  - Modifications récentes [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lololand.org/api.php?hidebots=1&amp;urlversion=1&amp;days=7&amp;limit=50&amp;action=feedrecentchanges&amp;feedformat=atom"/>
	<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php/Sp%C3%A9cial:Modifications_r%C3%A9centes"/>
	<updated>2026-07-24T13:18:03Z</updated>
	<subtitle>Suivez les dernières modifications du wiki dans ce flux.</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Acc%C3%A9der_et_capturer_une_page_web_via_un_tunnel_SSH&amp;diff=191&amp;oldid=0</id>
		<title>Accéder et capturer une page web via un tunnel SSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Acc%C3%A9der_et_capturer_une_page_web_via_un_tunnel_SSH&amp;diff=191&amp;oldid=0"/>
		<updated>2026-07-17T13:59:25Z</updated>

		<summary type="html">&lt;p&gt;Création du guide de tunnel SSH, capture Chromium et envoi Telegram OpenClaw&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:Accéder et capturer une page web via un tunnel SSH}}&lt;br /&gt;
&lt;br /&gt;
Ce guide explique comment consulter depuis une autre machine un service web qui n&amp;#039;écoute que sur l&amp;#039;interface locale d&amp;#039;un serveur, vérifier son accès, en faire une capture d&amp;#039;écran puis envoyer cette capture dans Telegram avec OpenClaw.&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;exemple utilise l&amp;#039;application &amp;#039;&amp;#039;&amp;#039;AI Tester&amp;#039;&amp;#039;&amp;#039; de Hermes sur la machine &amp;lt;code&amp;gt;tas&amp;lt;/code&amp;gt;. Le service est publié uniquement sur &amp;lt;code&amp;gt;tas:127.0.0.1:5000&amp;lt;/code&amp;gt; : il n&amp;#039;est donc pas directement accessible depuis le réseau.&lt;br /&gt;
&lt;br /&gt;
Dernière vérification : 17 juillet 2026.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Principe ==&lt;br /&gt;
&lt;br /&gt;
Le tunnel local SSH suit ce trajet :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Chromium ou curl&lt;br /&gt;
    → client:127.0.0.1:15000&lt;br /&gt;
    → tunnel SSH&lt;br /&gt;
    → tas:127.0.0.1:5000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le port &amp;lt;code&amp;gt;15000&amp;lt;/code&amp;gt; est le port d&amp;#039;entrée choisi sur la machine cliente. La destination &amp;lt;code&amp;gt;127.0.0.1:5000&amp;lt;/code&amp;gt; est interprétée depuis le serveur SSH &amp;lt;code&amp;gt;tas&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
Sur la machine cliente :&lt;br /&gt;
&lt;br /&gt;
* un accès SSH par clé au compte &amp;lt;code&amp;gt;loic@tas&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; pour vérifier la réponse HTTP ;&lt;br /&gt;
* Google Chrome ou Chromium pour produire la capture ;&lt;br /&gt;
* OpenClaw configuré pour Telegram si la capture doit être envoyée par la CLI.&lt;br /&gt;
&lt;br /&gt;
Le service doit déjà répondre sur &amp;lt;code&amp;gt;tas:127.0.0.1:5000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Ouvrir le tunnel SSH ==&lt;br /&gt;
&lt;br /&gt;
Dans un premier terminal sur la machine cliente :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh \&lt;br /&gt;
  -N \&lt;br /&gt;
  -o ExitOnForwardFailure=yes \&lt;br /&gt;
  -L 127.0.0.1:15000:127.0.0.1:5000 \&lt;br /&gt;
  loic@tas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande reste au premier plan pendant toute l&amp;#039;utilisation du tunnel.&lt;br /&gt;
&lt;br /&gt;
Signification des paramètres :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-N&amp;lt;/code&amp;gt; : ne lance aucune commande distante ;&lt;br /&gt;
* &amp;lt;code&amp;gt;-L&amp;lt;/code&amp;gt; : crée une redirection locale ;&lt;br /&gt;
* &amp;lt;code&amp;gt;127.0.0.1:15000&amp;lt;/code&amp;gt; : adresse et port d&amp;#039;entrée sur la machine cliente ;&lt;br /&gt;
* &amp;lt;code&amp;gt;127.0.0.1:5000&amp;lt;/code&amp;gt; : service de destination vu depuis &amp;lt;code&amp;gt;tas&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* &amp;lt;code&amp;gt;ExitOnForwardFailure=yes&amp;lt;/code&amp;gt; : arrête immédiatement SSH si le tunnel ne peut pas être créé.&lt;br /&gt;
&lt;br /&gt;
Si la clé n&amp;#039;est pas sélectionnée automatiquement, préciser son chemin :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh \&lt;br /&gt;
  -i ~/.ssh/id_rsa_user \&lt;br /&gt;
  -N \&lt;br /&gt;
  -o ExitOnForwardFailure=yes \&lt;br /&gt;
  -L 127.0.0.1:15000:127.0.0.1:5000 \&lt;br /&gt;
  loic@tas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le préfixe local &amp;lt;code&amp;gt;127.0.0.1:&amp;lt;/code&amp;gt; empêche les autres machines du réseau d&amp;#039;utiliser ce tunnel.&lt;br /&gt;
&lt;br /&gt;
== Vérifier l&amp;#039;accès HTTP ==&lt;br /&gt;
&lt;br /&gt;
Dans un second terminal sur la machine cliente :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl --fail --show-error \&lt;br /&gt;
  -o /dev/null \&lt;br /&gt;
  -w &amp;#039;HTTP %{http_code} | %{content_type}\n&amp;#039; \&lt;br /&gt;
  http://127.0.0.1:15000/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Réponse attendue :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP 200 | text/html; charset=utf-8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour ouvrir la page manuellement, utiliser dans le navigateur de la machine cliente :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://127.0.0.1:15000/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Capturer la page avec Chromium ==&lt;br /&gt;
&lt;br /&gt;
Avec Google Chrome :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
google-chrome \&lt;br /&gt;
  --headless \&lt;br /&gt;
  --disable-gpu \&lt;br /&gt;
  --screenshot=&amp;quot;$PWD/hermes-ai-tester-home.png&amp;quot; \&lt;br /&gt;
  --window-size=1440,1100 \&lt;br /&gt;
  http://127.0.0.1:15000/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec Chromium, remplacer simplement &amp;lt;code&amp;gt;google-chrome&amp;lt;/code&amp;gt; par &amp;lt;code&amp;gt;chromium&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;chromium-browser&amp;lt;/code&amp;gt; selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Vérifier ensuite le fichier :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
file &amp;quot;$PWD/hermes-ai-tester-home.png&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Envoyer la capture dans Telegram avec OpenClaw ==&lt;br /&gt;
&lt;br /&gt;
Remplacer &amp;lt;code&amp;gt;IDENTIFIANT_DU_CHAT&amp;lt;/code&amp;gt; par l&amp;#039;identifiant du chat Telegram destinataire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openclaw message send \&lt;br /&gt;
  --channel telegram \&lt;br /&gt;
  --target &amp;#039;IDENTIFIANT_DU_CHAT&amp;#039; \&lt;br /&gt;
  --message &amp;#039;Capture de la page d’accueil AI Tester via tunnel SSH.&amp;#039; \&lt;br /&gt;
  --media &amp;quot;$PWD/hermes-ai-tester-home.png&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette commande envoie un fichier existant. Elle ne lance pas de modèle de langage.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier la commande sans envoyer de message :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openclaw message send \&lt;br /&gt;
  --dry-run \&lt;br /&gt;
  --channel telegram \&lt;br /&gt;
  --target &amp;#039;IDENTIFIANT_DU_CHAT&amp;#039; \&lt;br /&gt;
  --message &amp;#039;Capture de test.&amp;#039; \&lt;br /&gt;
  --media &amp;quot;$PWD/hermes-ai-tester-home.png&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fermer le tunnel ==&lt;br /&gt;
&lt;br /&gt;
Revenir dans le premier terminal et presser &amp;lt;code&amp;gt;Ctrl+C&amp;lt;/code&amp;gt;. Le port local &amp;lt;code&amp;gt;15000&amp;lt;/code&amp;gt; est alors libéré.&lt;br /&gt;
&lt;br /&gt;
Vérification facultative :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl --max-time 2 http://127.0.0.1:15000/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après fermeture, cette commande doit échouer avec une erreur de connexion.&lt;br /&gt;
&lt;br /&gt;
== Dépannage ==&lt;br /&gt;
&lt;br /&gt;
=== Le port local 15000 est déjà occupé ===&lt;br /&gt;
&lt;br /&gt;
Choisir un autre port d&amp;#039;entrée, par exemple &amp;lt;code&amp;gt;15001&amp;lt;/code&amp;gt;, dans la commande SSH et dans toutes les URL locales.&lt;br /&gt;
&lt;br /&gt;
=== SSH affiche « No route to host » ===&lt;br /&gt;
&lt;br /&gt;
Vérifier la résolution de &amp;lt;code&amp;gt;tas&amp;lt;/code&amp;gt;, sa route réseau, son adresse IP et l&amp;#039;accessibilité du port SSH :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
getent hosts tas&lt;br /&gt;
ssh -v loic@tas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSH affiche « Permission denied (publickey) » ===&lt;br /&gt;
&lt;br /&gt;
Vérifier le compte distant, le chemin de la clé et la présence de sa clé publique dans &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; sur &amp;lt;code&amp;gt;tas&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== curl renvoie « Connection refused » ===&lt;br /&gt;
&lt;br /&gt;
Le tunnel peut être établi alors que le service cible ne fonctionne pas. Depuis &amp;lt;code&amp;gt;tas&amp;lt;/code&amp;gt;, contrôler directement :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -I http://127.0.0.1:5000/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Précautions de sécurité ===&lt;br /&gt;
&lt;br /&gt;
* conserver l&amp;#039;écoute locale du tunnel sur &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* ne pas publier directement AI Tester sur Internet ;&lt;br /&gt;
* ne pas exposer un serveur Flask/Werkzeug de développement sans authentification ni reverse proxy adapté ;&lt;br /&gt;
* vérifier le destinataire avant d&amp;#039;utiliser &amp;lt;code&amp;gt;openclaw message send&amp;lt;/code&amp;gt; sans &amp;lt;code&amp;gt;--dry-run&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Résumé des commandes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Terminal 1 : tunnel&lt;br /&gt;
ssh -N -o ExitOnForwardFailure=yes \&lt;br /&gt;
  -L 127.0.0.1:15000:127.0.0.1:5000 loic@tas&lt;br /&gt;
&lt;br /&gt;
# Terminal 2 : test&lt;br /&gt;
curl --fail --show-error -o /dev/null \&lt;br /&gt;
  -w &amp;#039;HTTP %{http_code} | %{content_type}\n&amp;#039; \&lt;br /&gt;
  http://127.0.0.1:15000/&lt;br /&gt;
&lt;br /&gt;
# Capture&lt;br /&gt;
google-chrome --headless --disable-gpu \&lt;br /&gt;
  --screenshot=&amp;quot;$PWD/hermes-ai-tester-home.png&amp;quot; \&lt;br /&gt;
  --window-size=1440,1100 \&lt;br /&gt;
  http://127.0.0.1:15000/&lt;br /&gt;
&lt;br /&gt;
# Envoi Telegram&lt;br /&gt;
openclaw message send \&lt;br /&gt;
  --channel telegram \&lt;br /&gt;
  --target &amp;#039;IDENTIFIANT_DU_CHAT&amp;#039; \&lt;br /&gt;
  --message &amp;#039;Capture AI Tester via tunnel SSH.&amp;#039; \&lt;br /&gt;
  --media &amp;quot;$PWD/hermes-ai-tester-home.png&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SSH]]&lt;br /&gt;
[[Category:OpenClaw]]&lt;br /&gt;
[[Category:Hermes]]&lt;/div&gt;</summary>
		<author><name>Daneel</name></author>
	</entry>
</feed>