Utilisation du mode GUI d’une distribution Linux

 

Problème : Sur ma machine Windows je n’arrive pas à lancer un programme Java (AnalyseSi.jar). Le programme fonctionne en mode graphique. Les recherches sur internet sont restées infructueuses. Comme il fallait que j’utilise ce logiciel sur cette machine, une solution de contournement devait être trouvée rapidement. Il se trouve que j’ai une distribution Kali sur cette machine, y exécuter le fichier .jar ne poserai pas de problème. Seul bémol, le logiciel fonctionne en mode graphique et non pas en mode ligne de commande. Utiliser le rdp est certes une solution mais nous allons voir comment exécuter le programme tout en restant sur le même écran.

Solution 1 : Utilisation de MobaXterm

MobaXterm, entre autres, est un client ssh avec serveur X intégré. La version home est gratuite. On peut aussi télécharger la version portable ou la version installable.

Une fois lancée, on lance une session ssh sur la distribution linux



Lancer la commande

Java -jar nomfichier.jar



Le cas échéant se positionner sur le répertoire contenant le fichier .jar

Le logiciel se lance en mode gui sur l’écran de la machine hôte windows 10



Solution 2 : utilisation de putty

Putty est un client ssh très répandu. Avant de voir son utilisation nous devons d’abord installer sur notre machine windows 10 un serveur X

Lancer Microsoft Store et chercher GWSL


Cliquer sur le bouton télécharger pour installer cette application. Une icone est alors créée et en cliquant dessus on obtient


Le serveur X est lancé sur la machine locale.

Lancer putty, introduire l’adresse IP de la distribution linux et avant de cliquer sur le bouton open, aller sur Connection puis SSH puis X11. Cocher Enable X11 forwarding et indiquer localhost :0.0 dans x display location




Lancer la connexion vers la distribution puis s’authentifier

De la même manière, se mettre dans le répertoire ou se trouve l’application .jar puis la lancer en tapant java -jar fichier.jar



L’application se lance et s’affiche sur l’écran de la machine hôte Windows 10.

Remarque : si le X11 forwarding ne marche pas vérifier que dans le fichier /etc/ssh/sshd_config on a bien la ligne « X11Forwarding yes » est présente


Solution 3 : utilisation du client ssh windows natif

Microsoft a ajouté une fonctionnalité basée sur openssh et qui comporte un certain nombre de clients dans ses systèmes d’exploitation Windows 10 et Windows Server 2019. Openssh est installé dans c:\windows\system32\Openssh


Les clients sont

  • scp.exe : méthode de transfert de fichiers via SSH
  • sftp.exe : méthode de transfert de fichiers via FTP (dans SSH)
  • ssh-add.exe : ajouter une clé SSH à la base de données locale de l'agent
  • ssh-agent.exe : gestion des clés SSH de l'hôte
  • ssh-keygen.exe : générer des clés SSH
  • ssh-keyscan.exe : collecter les clés publiques à partir de plusieurs hôtes
  • ssh.exe : le client SSH

 

Pour se connecter par exemple à la machine d’adresse IP 172.28.137.220 et en utilisant le nom d’utilisateur aannaque, on tape la commande :

ssh aannaque@172.28.137.220



La commande échoue et on obtient le message CreateProcessW failed error 2

Pour contourner le problème il suffit de créer un répertoire \dev\tty (comme sur Linux)

En tapant à nouveau la commande, ça marche. Taper yes

Après authentification, on obtient l’invite de commande



Si on lance l’application java, on obtient le message d’erreur No X11 DISPLAY variable was set.



Fermer la session ssh. Au niveau de la fenêtre DOS, taper la commande

set DISPLAY=localhost:0.0

puis lancer la session ssh en spécifiant le paramètre -Y


En lançant l’application .jar, elle se lance sans problème et le output s’affiche sur la machine hôte



Commentaires

Posts les plus consultés de ce blog

How to determine eigenvalues and eignevectors of a matrix in Excel

Analyse de Fourrier sur Excel

Calcul des valeurs propres et vecteurs propres sur Excel