Périmètre sûr : ce guide vise vos propres applications et vos environnements de QA ou de préproduction, ou des systèmes pour lesquels vous détenez une autorisation écrite. Il ne couvre pas l'automatisation de sites tiers ni la neutralisation de protections anti-bot.
Piloter l'extension CaptchaAI depuis un navigateur joignable seulement via un bastion SSH devient fiable dès lors que vous la traitez comme un profil de navigateur persistant, non comme un bouton à activer. Quatre points font la différence : l'état du compte, le profil du navigateur, le gestionnaire de CAPTCHA et le comportement après résolution. C'est là que se concentrent les erreurs et la charge de support.
Pourquoi un bastion SSH change la donne pour l'extension
Un bastion SSH (ou jumphost) place le navigateur sur un hôte interne que vous n'atteignez pas directement : vous y accédez par un tunnel SSH, du forwarding X11 ou une session VNC relayée par le bastion. L'extension CaptchaAI s'exécute côté serveur, dans le profil. Gardez ce profil stable entre deux connexions pour qu'elle reste configurée sans intervention. C'est le cas d'une équipe dont les workers de QA tournent sur un hôte OVHcloud ou Scaleway (eu-west-3, Paris) joignable via bastion uniquement.
Préparer le profil de l'extension derrière le bastion
- Isolez la QA de la production ; n'ouvrez que les ports nécessaires sur le bastion.
- Stockez la clé CaptchaAI dans un coffre ou un secret de CI, jamais dans un profil versionné.
- Pointez le navigateur vers un répertoire de profil dédié (
--user-data-dir) : configuration, cookies et authentification y persistent d'une session à l'autre. - Sauvegardez ce répertoire pour reprovisionner un worker sans reconfiguration manuelle.
Encapsuler l'appel à l'API CaptchaAI
- Isolez l'appel à CaptchaAI dans une fonction réutilisable prenant la
sitekeyet l'URL de la page. - Faites-lui renvoyer un token et tracer la durée et le code retour.
- Réutilisez-la dans chaque worker au lieu de dupliquer le code.
Exemple : créer une tâche Turnstile
Voici un exemple commenté en français qui appelle l'API :
import fetch from 'node-fetch';
const API_KEY = process.env.CAPTCHAAI_KEY;
export async function createTurnstileTask(siteKey, pageUrl) {
const res = await fetch('https://api.captchaai.com/createTask', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientKey: API_KEY,
task: {
type: 'TurnstileTaskProxyless',
websiteURL: pageUrl,
websiteKey: siteKey,
},
}),
});
const data = await res.json();
return data.taskId;
}
Vérifier le token côté backend
Le token renvoyé doit être validé par votre backend avant toute opération métier. Cette étape bloque une requête portant un token périmé ou contrefait. Faites-la toujours côté serveur, jamais dans le navigateur piloté à distance.
Mesurer les appels à travers le tunnel
Instrumentez chaque appel CAPTCHA et séparez les journaux par environnement. Corrélez-les à votre traçage distribué (OpenTelemetry, par exemple) pour rejouer un scénario depuis un seul identifiant. Suivez en permanence quatre signaux :
- Durée d'obtention du token — latence réelle vue par le worker.
- Code retour HTTP — échecs réseau ou rejets côté API.
- Identifiant de tâche — corrélation avec le traçage distribué.
- Taille de la file d'attente — saturation des threads du plan.
Liste de contrôle avant la mise en production
- Périmètre limité à vos applications ou à des sources autorisées.
- Clé CaptchaAI en secret de CI ou coffre, jamais dans le code.
- Profil persistant et sauvegardé, prêt à survivre à une reconnexion.
- Durées d'appel et codes retour tracés à chaque exécution.
- Retry idempotent sur les erreurs transitoires, tests rejouables en CI.
Dépannage des workflows derrière le bastion
Ces incidents tiennent presque toujours au profil, au tunnel ou à la session du token.
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Extension déconfigurée après reconnexion | Profil non persistant | Fixez --user-data-dir et sauvegardez le répertoire |
| Token refusé par le backend | Validation faite dans le navigateur | Validez le token côté serveur uniquement |
| Appels qui expirent par intermittence | Tunnel SSH ou DNS instable | Contrôlez le réseau du bastion et bornez le timeout |
FAQ
Comment atteindre l'extension à travers un bastion SSH ?
Faites tourner le navigateur sur l'hôte interne et exposez son affichage via un tunnel SSH, du forwarding X11 ou une session VNC. Vous ne pilotez que l'affichage à distance ; n'ouvrez que les ports nécessaires sur le bastion.
Le profil du navigateur conserve-t-il la configuration de l'extension ?
Oui, avec un répertoire de profil persistant (--user-data-dir) : l'extension y garde sa configuration d'une session à l'autre. Sauvegardez-le pour reprovisionner un worker sans reconfiguration manuelle.
Que faire en cas d'erreur transitoire de l'API ?
Mettez en place un retry avec backoff exponentiel borné : trois tentatives, doublement du délai à chaque essai, plafond à 30 secondes. Tracez chaque échec avec son identifiant de tâche. Si l'erreur persiste, contrôlez le réseau (DNS, certificats) et les quotas de votre clé.
Quel plan CaptchaAI convient à une flotte de workers ?
Il dépend du nombre de résolutions simultanées, pas du volume total : la facturation est par thread, avec des résolutions illimitées par thread. Le plan BASIC ($15/mois, 5 threads) suffit pour quelques workers de QA ; STANDARD ($30/mois, 15 threads) couvre une flotte plus large.
Guides connexes
- le démarrage rapide CaptchaAI
- la QA CAPTCHA en environnements autorisés
- tester l'endpoint API sur vos formulaires
- l'intégration CAPTCHA en continu (CI)
- résoudre reCAPTCHA v2 via l'API
Fiabilisez vos workflows CAPTCHA avec une approche méthodique et reproductible. — Obtenez votre clé CaptchaAI.