Utiliser GitHub Copilot CLI via SSH distant depuis QF-Test

Irfan Yigit, ASC Technologies

Avec QF-Test 10, il est possible d’intégrer des modèles d’IA tiers tels que GitHub Copilot dans QF-Test. Dans le cas de Copilot, il est généralement nécessaire d’avoir installé Copilot CLI sur le même système que QF-Test.

Cependant, il existe des situations où vous ne pouvez pas installer Copilot CLI sur vos machines de test pour des raisons techniques ou de sécurité.

Dans de tels cas, cet article invité de l’utilisateur expérimenté de QF-Test, Irfan Yigit, vous montre comment configurer Copilot sur une seule machine centrale et établir une connexion réseau SSH vers vos machines de test. Vous pouvez ensuite utiliser vos modèles d’IA GitHub Copilot avec QF-Test via SSH.

Prérequis

Pour mettre en place cette configuration sur un système Windows, OpenSSH est nécessaire. OpenSSH doit être installé sur la VM cliente et sur la VM cible.

La VM cliente doit également avoir QF-Test (10.0 ou supérieur) installé. La VM cible doit disposer d’une installation à jour de GitHub Copilot CLI, et la connexion GitHub (/login) doit avoir été effectuée dans l’environnement SSH.

Pour utiliser GitHub Copilot CLI via SSH distant de manière fiable, une clé SSH est obligatoire, car OpenSSH ne peut pas gérer les invites de mot de passe SSH lors d’appels distants automatisés (comme ceux déclenchés depuis QF-Test). L’authentification par clé SSH est uniquement nécessaire pour établir une connexion SSH stable et sans mot de passe.

Guide étape par étape

Préparation sur la VM cliente

1. Créer le répertoire .ssh (s’il n’existe pas, par exemple C:\Users\Administrator\.ssh)

New-Item -ItemType Directory -Path "$env:USERPROFILE\.ssh" -Force | Out-Null

2. Générer une clé SSH (ed25519) sur la VM cliente (sans phrase secrète)

ssh-keygen -t ed25519 -C "qftest-remote" -f "$env:USERPROFILE\.ssh\id_ed25519"
  • Laisser la phrase secrète vide (appuyer deux fois sur Entrée).
  • La clé publique générée (…/.ssh/id_ed25519.pub) sera nécessaire sur la VM cible ultérieurement.

Préparation sur la VM cible

1. Configurer correctement les listes de contrôle d’accès (ACL)

Windows OpenSSH n’accepte les clés que si le fichier se trouve au bon endroit et si les permissions sont définies avec les ACL correctes. Le fichier C:\ProgramData\ssh\administrators_authorized_keys est créé et sécurisé comme suit :

icacls C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r
icacls C:\ProgramData\ssh\administrators_authorized_keys /grant 'Administrators:F'
icacls C:\ProgramData\ssh\administrators_authorized_keys /grant 'SYSTEM:F'
Restart-Service sshd

2. Ajouter la clé publique

Coller le contenu de id_ed25519.pub depuis la VM cliente dans le fichier administrators_authorized_keys sur la VM cible et enregistrer (une clé par ligne).

3. Se connecter à Copilot CLI dans l’environnement SSH sur la VM cible (une seule fois)

Copilot stocke ses identifiants de connexion localement dans le profil utilisateur correspondant. La connexion doit être effectuée au préalable — soit directement sur la VM cible, soit via SSH, selon que différents utilisateurs Windows sont impliqués.

Une fois la connexion Copilot enregistrée dans l’environnement SSH, Copilot peut être entièrement piloté par script via SSH distant depuis QF-Test.

Exécuter les commandes suivantes dans PowerShell si toutes les VM clientes doivent interagir avec le même utilisateur et le même environnement SSH :

  1. SSH directement vers la VM cible : ssh -i ~/.ssh/id_ed25519 Administrator@<IP-cible>
  2. Démarrer Copilot : copilot
  3. Démarrer la connexion : /login
  4. Confirmer le code d’appareil dans le navigateur.

Test fonctionnel (VM cliente → VM cible, headless)

Exécuter la commande suivante sur la VM cliente dans PowerShell :

ssh -i ~/.ssh/id_ed25519 Administrator@<IP-cible> "copilot -p 'Dis bonjour' --stream on"

Dépannage

Tester la connexion par clé SSH depuis la VM cliente

Vérifier que SSH fonctionne sans mot de passe avec la clé SSH (condition préalable pour QF-Test) :

ssh -i $env:USERPROFILE\.ssh\id_ed25519 Administrator@<IP-cible> 'echo OK'
  • Si OK s’affiche → l’authentification par clé fonctionne.
  • En cas d’erreur : vérifier les clés SSH ou les ACL sur la VM cible.

Connexion de l’interface de ligne de commande Copilot à QF-Test via SSH

Suivez ces instructions :

Apportez les modifications suivantes au script ai.addCustomModel (indiquez l’utilisateur, le chemin et l’adresse IP correspondant à votre configuration) :

ai.addCustomModel("GitHub Copilot", (msg) -> {
    def remoteUser = "Administrator"
    def remoteHost = "192.168.0.2" // IP of target VM
    def remoteCmd = "cmd /c \"C:/Users/Administrator/AppData/Local/GitHubCopilotCLI/copilot.exe --silent --stream off --model claude-sonnet-4.6 --prompt \\\"${msg}\\\"\""
    def cmd = [
        "ssh",
        "-o",
        "StrictHostKeyChecking=no",
        "${remoteUser)@${remoteHost)",
        remotecmd
    ]

    def proc = cmd.execute()
    proc.outputStream.close()
    proc.waitFor()

    return proc.in.text.replace("● ", "")
})

Découvrez plus d’informations sur les intégrations d’IA dans QF-Test 10 :

Nous utilisons des cookies "Matomo" pour l'évaluation anonyme de votre visite à note page web. Pour cela nous avons besoin de votre consentement qui est valable pour douze mois.

Configuration de cookies

Cookies fonctionnels

Nous utilisons des cookies fonctionnels pour garantir la fonctionnalité de base du site web.

Cookies de performance et de statistique

Nous utilisons Matomo pour analyser et améliorer notre site web. Des cookies permettent une collection anonyme des informations qui nous aident à vous offrir un visite clair et facile à utiliser de nos pages web.

Détails des cookies
Description Fournisseur Durée de vie Type But
_pk_id Matomo 13 Mois HTTP Contient un identifiant de visiteur unique et pseudonymisé interne à Matomo pour reconnaître les visiteurs qui reviennent.
_pk_ref Matomo 6 Mois HTTP Utilisé pour suivre à partir de quel site Web l'utilisateur anonymisé est arrivé sur notre site Web.
_pk_ses Matomo 1 Jour HTTP Le cookie de session Matomo est utilisé pour suivre les demandes de page du visiteur pendant la session.
_pk_testcookie Matomo Session HTTP Utilisé pour vérifier si le navigateur du visiteur prend en charge les cookies.
_pk_cvar Matomo 30 Minutes HTTP Stocker temporairement les données relatives à la visite.
_pk_hsr Matomo 30 Minutes HTTP Stocker temporairement les données relatives à la visite.