Accéder à l'interface graphique Debian 8 sans écran

Bonsoir à tous,

Le titre peut paraître étrange, mais laissez-moi tout d’abord planter le décor !
J’ai installé une config SAMBA sous DEBIAN 8 pour gérer du partage de fichiers dans un premier temps.
Une connexion SSH qui va bien pour l’admin, tout va pour le mieux. Sauf que… (oui, y’a forcément un truc qui ne va pas !)

J’ai régulièrement besoin de parcourir le contenu des disques à distance, via l’explorateur de fichiers. Donc, via l’interface graphique…
Du coup, j’ai installé TeamViewer, je l’ai lié à mon compte utilisateur, je vois donc tous mes clients et mon serveur. Génial ! Sauf que… (oui, encore…)

Ayant trouvé cette solution plus souple et plus mobile qu’un VNC, j’ai décidé de monter la machine dans le CDM (local technique de la structure), et de lui retirer ses périphériques (clavier, souris, écran) : elle n’en n’a plus besoin ! Mais… (c’est là, le hic !)

Sans écran, DEBIAN ne semble pas initialiser son interface graphique ! Autrement dit, sans écran physiquement raccordé, lorsque je lance TeamViewer, je ne peux que voir… un écran noir ! Et donc, je ne peux rien faire. Par contre, ma console SSH, elle, elle fonctionne ! Mais j’ai beau essayer startx et autres commandes de démarrage de l’affichage, il ne se passe rien, et mon écran déporté TeamViewer reste définitivement noir (mais il est connecté ! donc Debian l’a bien initialisé…)

Bref, j’ai besoin d’un p’tit coup d’pouce :smiley:

J’ai testé un fichier xorg.conf, et j’ai testé Xvfb, là encore, en vain.

Merci de vos éclairages…

Humm…
Pourquoi ne pas configurer un VNC over SSH tranquillement ?
De cette façon tu n’auras pas besoin de brancher un écran par derrière…
Non ? :slightly_smiling:

Disons que je souhaite effectivement ne pas avoir d’écran branché, tout en pouvant accéder à l’interface graphique.
TeamViewer me va bien car je l’utilise déjà pour les autres postes client que j’ai à administrer ou à assister, il propose une gestion des “contacts” qui rend l’outil pratique en mobilité (ce qui est mon impératif).
VNC est beaucoup plus lourd pour ça. Et pas dit que VNC ne m’affiche pas non plus un écran noir, puisque pour l’instant, Debian ne génère pas de sortie graphique si l’écran n’est pas physiquement branché au moment du boot.

Eh bien… Je ne vois pas d’autres alternatives que VNC x SSH :confused:

Tu ne prends pas le problème par le bon bout.
Teamviewer, vnc, etc … Ils te proposent de t’afficher un environnement graphique déjà démarré, or rien n’est démarré !
Donc il faut que tu installes un serveur X sur ton poste de travail (si Windows, tu installes Xming) ensuite tu paramètres ton SSH pour faire du X-Forwarding et là tu peux démarrer le X de ton poste distant en utilisant l’affichage de ton poste de travail.

J’entends bien. Mais lorsque je fais du Xforwading via SSH (avec XMing et Putty), je ne vois qu’une console. J’ai beau lui demander startx, hormis des lignes d’erreur en retour, je n’ai jamais un affichage graphique qui se lance.
Par ailleurs si je dois faire cette manip systématiquement pour prendre le contrôle (via VNC ou TeamViewer peu importe), c’est un peu lourd. Je souhaiterais que la machine ne détecte pas l’écran au démarrage mais se comporte en permanence comme s’il était là, et initialise son serveur graphique ; j’imagine que ça doit bien être possible…

Peux-tu nous transmettre ces lignes ?

Qu’as-tu pour l’instant installé sur le serveur (partie X bien entendu) ?

Au boulot j’ai installé XFCE sur les VM RedHat et je démarre le X une fois loggé avec mon user par xfce4-session, ça fonctionne, c’est plus simple que toute autre solution.

Mouais, à la mise en place, mais en mobilité, une connexion TeamViewer directe sans avoir à lancer de terminal en SSH pour démarrer des services , c’est quand même encore plus simple. M’enfin.

Voici un screen du terminal Xming lorsque je startx en root :

Et lorsque je startx en utilisateur classique :

Edit : par contre la solution de @debianhadic fonctionne sans problème en SSH (donc Debian sait initialiser quand on lui demande, une interface graphique) ; mais ça ne répond pas à ma problématique avec TeamViewer que je souhaite réellement utiliser sur mon interface Gnome

Je vais poser le problème autrement. Pourquoi avoir besoin d’un explorateur de fichiers graphique alors qu’existent midnight commander, last file manager ou encore vifm ?

https://www.google.com/search?q=linux+cli+file+explorer

Bonjour,

Pour faire ce que tu désires, il faut simuler un écran connecté. Cela se passe dans /etc/X11/xorg.conf, à l’aide de :

  • Une ligne ‘ModeLine’ correctement renseignée dans la section ‘Monitor’
  • Les options suivantes dans la section ‘Device’

“ConnectedMonitor”
“CustomEDID”
“IgnoreEDID” “false”
“UseEDID” “true”

  • L’extraction des paramètres EDID d’un moniteur dans un fichier.

Bien sûr, tout cela étant fortement dépendant de la configuration matérielle de ta machine, je te donne seulement le titre des options à utiliser, mais tu devras faire une recherche pour l’adapter à ta config.

Je vois une incompréhension fondamentale des principes qui sous-tendent l’affichage graphique sous Linux. Je sais bien que la série de livres O’Rieilly intitulée The Definite Guide to the X Window System n’est plus disponible (pas moins de 7 volumes dans mon armoire) mais de là à tenter un startx au petit bonheur, il y a un pas!

Je ne vais pas trop parler de TeanViewer car la version proposée sur https://www.teamviewer.com/fr/download/linux.aspx ne va certainement pas fonctionner sur les deux systèmes Debian qui sont dotés de processeurs Power4 (des IBM pSeries P630, environ 12 ans d’âge).

Architecture X Window System : vous avez un serveur X qui se charge de la gestion des périphériques (écran, souris clavier). Ce logiciel peut piloter directement le matériel ( modules xserver-???) ou utiliser un système graphique déjà existant : c’est le cas de Xming sous windows par exemple (qui se base sur des trucs comme DirectDraw)

Dans la terminologie associée à X Window, la notion essentielle est celle de DISPLAY c’est à dire qu’on désigne la surface d’affichage par une notation simplifiée du genre :0.0 ou par exemple avec Xming lancé

C:\Temp>echo %DISPLAY%
127.0.0.1:0.0

Nous voyons apparaître l’IP locale de la machine. En effet, un des principes de Xlib c’est la transparence réseau. Si je lance un nmap vers ma machine windows je trouve entre autre

6000/tcp  open  X11

Je pourrais lancer une autre instance de X en ajoutant :1 à la commande trouvée dans le log

Xming was started with the following command line...
C:\Program Files\Xming\Xming.exe -clipboard -multiwindow 

et je verrais apparaître un port 6001 correspondant à un display loacl :1
ceci étant si je paramètre Putty pour faire le transfert du canal d’affichage ( X11 forwarding) je trouve sur la machine Linux

fp2x@drmas:~$ echo $DISPLAY
localhost:10.0

c’est-à-dire que le :0.0 sur mon poste d’afficahge loacl (windows dans mon cas) est devenu un adressage :10.0 sur le Linux distant pour désigner le même display.
Ainsi en local

C:\Program Files\Xming>xwininfo.exe -root

xwininfo: Window id: 0x100 (the root window) (has no name)

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1920
  Height: 1200
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+0  -0+0  -0-0  +0-0
  -geometry 1920x1200+0+0

Je ne mets pas la sortie sur le système Linux distant de

fp2x@drmas:~$ xwininfo -root

car c’est exactement la même. Autrement dit le X11 forwarding fonctionne.

A partir du moment où vous avez un DISPLAY qui est ok, vous pouvez lancer toutes les applications graphiques que vous voulez. Cela peut-être tout un bureau (commande du genre gnome-session)
ou des applications isolées gnome-terminal nautilus ou xfe.

Exemple d’application : j’ai défini une session Putty nommée drmas pour me connecter à la machine drmas sous le nom fp2x et je peux lancer directement xfe avec

C:\Temp>ssh -load drmas xfe

Un lecteur attentif va se demander d’où sort cette commande windows ssh ?
En fait j’ai tout simplement mis C:\Temp\bin dans le PATH et réaliser un lien vers plink.exe fourni par Putty

C:\Temp>fsutil hardlink list C:\Temp\bin\ssh.EXE
\Program Files\PuTTY\plink.exe
\Temp\bin\ssh.exe

En résumé, je vous conseille d’installer Xming et Putty avec pageant sur votre poste client, de configurer un accès sans mot de passe au serveur Linux (clés RSA), d’installer l’explorateur de fichiers voulu sur le serveur. (ne pas oublier d’installer xauth pour X11).

Avec simplement 2/3 icônes sur votre bureau vous aurez les fonctionnalités recherchées le tout avec des logiciels libres.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean
ingénieur civil du Génie Maritime
Bureau Veritas
Branche Marine & Offshore
Département Recherche, le département de l’excellence technique

1 J'aime

Merci pour ces précisions techniques @littlejohn75

Néanmoins je réitère, n’étant pas forcément administrateur de la machine que j’utilise pour me connecter aux postes ou serveurs distants à administrer, TeamViewer est pour moi une solution flexible, mobile, portable… pour me connecter en 2 clics au poste client pré-enregistré sous mon profil en ligne.

Installer XMing et Putty sur le poste que j’ai sous la main pour faire du xforwading en SSH est la solution idéale si je suis à la maison ou au bureau avec mon poste personnel. Or, c’est rarement le cas. Par conséquent, je reste avec mon problème à l’heure actuelle, à savoir : comment faire pour que TeamViewer puisse m’afficher un écran comme si je faisais du XForwading, sans avoir à lancer une requête SSH en amont, et sans XMing en local, puisque je ne peux pas avoir ces outils partout.

Merci de votre aide.

Au fait pour Teamviewer tu aurais dans ce cas un ID et un mot de passe fixe ?

Oui, tu peux installer un “accès non surveillé” lié à un compte TeamViewer.
De ce fait, quand tu rentre ton login et ton pass, tu vois tous les postes rattachés à ton compte TeamV, tu vois si ils sont en ligne ou pas, et tu peux t’y connecter en un clic, sans qu’aucune personne n’ait besoin physiquement de faire quoi que ce soit sur place.

Un type a eu les mêmes symptomes que toi, et ça venait de la version installée sur le serveur, cf: http://ubuntuforums.org/showthread.php?t=2271443
Sinon, l’écran noir est une fonctionnalité activable dans teamviewer, il suffit peut être de désactiver cette fonctionnalité depuis ton client ? cf: http://codeyarns.com/2012/02/16/how-to-show-black-screen-on-remote-computer-using-teamviewer/

Dernière piste que m’a donnée google (:yum:) et qui me parait la plus prometteuse, il y a un tuto sur teamviewer en headless sur linux qui dit qu’il suffit de se connecter en ssh, lancer teamviewer setup, et le configurer explicitement en “headless use”.
cf: https://blog.teamviewer.com/remote-access-headless-linux/
Hope that helps buddy.

Très intéressant ces discussions à propos de TeamViewer.

Il y a un problème qui me tracasse au sujet de ces logiciels privateurs.

Comment être sûr que ces logiciels ne sont pas fournis clé en main avec la porte dérobée qui va bien ?

Déjà que le paquet deb pour 64bits fait référence à des libs 32bits et à wine, on imagine le professionnalisme des développeurs.

C’est typiquement le genre de logiciel rêvé pour installer un collecteur de données sensibles : le réseau doit fonctionner et l’utilisateur y confie des mots de passe et identifiants. (je ne sais pas s’il faut être root ou passer par sudo )

Qu’en pensez-vous ?

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean
Bureau Veritas

« Je préfère le vin d’ici à l’au-delà »
Pierre Dac

Pour tout dire, dans ma boite, Teamviwer et LogMeIn sont interdits …

Là où il y a un blob, il y a un loup. C’est sûr.