Le problème
La plupart des gens veulent se connecter à un serveur via ssh avec l'option "-X" afin d'exécuter des programmes GUI sur l'hôte distant en utilisant l'affichage du client. Je voudrais exécuter des programmes GUI sur le moniteur physique connecté au serveur. Est-ce possible ? Permettez-moi d'être plus précis:
Ma situation est la suivante: j'ai un poste de travail sans clavier ni souris, mais un moniteur y est connecté. Je voudrais y SSH avec mon ordinateur portable et pouvoir lancer un programme graphique, tel que xeyes ou ssvnc et le faire apparaître sur le moniteur de la station de travail.
[xapple@laptop ~]$ ssh workstation
Last login: Mon Sep 26 20:03:35 2011 from laptop
[xapple@workstation ~]$ export DISPLAY=:0
[xapple@workstation ~]$ xeyes
No protocol specified
Error: Can't open display: :0
Modifier: informations supplémentaires
Je devrais peut-être expliquer plus clairement certaines choses:
- J'ai un accès sudo sur le poste de travail, je peux installer n'importe quoi si besoin.
- La station de travail exécute l'interface utilisateur GNOME.
- Avant de déconnecter le clavier et la souris du poste de travail, je me suis connecté à une session GNOME. On peut donc voir mon bureau GNOME sur le moniteur de la station de travail actuellement.
- Je ne souhaite pas exécuter de programmes à partir de mon ordinateur portable sur le poste de travail. Je voudrais exécuter des programmes de poste de travail sur le poste de travail. Le xeyes ou tout autre exécutable se trouve sur le serveur distant et doit être exécuté sur le moniteur du serveur distant
- Je comprends que cette opération me laissera dans une situation où mon curseur ne sera pas connecté à l'interface. Je ne peux pas cliquer sur les choses. C'est bon.
Toute aide grandement appréciée!
xhost +
sur votre serveur?Réponses:
toute application xlib doit se connecter à un xserver. vous devez indiquer à l'application la connexion au serveur soit:
-display
le premier xserver est généralement accessible par la chaîne de connexion ': 0'. alors essayez ceci:
ou ca
la source
XAUTHORITY
sera également nécessaire, car le serveur X11 utilisera un fichier Xauthority temporaire.Ce poste de travail exécute-t-il un serveur X Windows? Sans cela, tout cela est théorique.
Vous avez besoin de QUELQUE CHOSE pour traiter les données en graphiques, pixels, couleurs et emplacements. Un «moniteur» est inutile sans une sorte de logiciel pour l'exécuter.
En supposant que ce soit le cas. (mais d'après le texte, ça sonne bien sûr autrement)
Étant donné les noms d'hôte (et la résolution DNS appropriée via / etc / hosts ou DNS ou autre) de 'station de travail' et 'ordinateur portable' ... sinon, remplacez les noms d'hôte de la machine par des adresses IP appropriées.
vous pouvez ensuite vous déconnecter de la station de travail à ce stade, car cela définit les autorisations sur le serveur X de la station de travail pour permettre à «l'ordinateur portable» de se connecter.
si vous démarrez vos programmes avec le jeu d'environnement DISPLAY env correctement, vous pouvez faire en sorte que les applications s'affichent sur le poste de travail, tout en s'exécutant sur votre ordinateur portable.
-ou-
l'une ou l'autre méthode fonctionnera, cette dernière provoque l'affichage de tout ce qui concerne X11 sur le poste de travail lors du démarrage à partir de ce shell. (j'espère que cela avait du sens)
La ligne «xhost» consiste à autoriser l'ordinateur portable à se connecter au Xserver de la station de travail. Sans cela, vous obtiendrez une autorisation refusée, sauf si vous démarrez le serveur X sans autorisations, ce qui n'est pas vraiment recommandé. La protection «xhost» est encore boiteuse, car les données sont envoyées en «texte brut» entre l'ordinateur portable et la station de travail et peuvent être reniflées, mais c'est une solution facile.
Si vous vouliez de la confidentialité, vous auriez besoin de configurer une sorte de tunnel crypté entre votre ordinateur portable et la station de travail (port 6000 pour l'affichage: 0). Ouais, ça devient bizarre à ce stade.
Si vous êtes dans un environnement contrôlé, l'utilisation de la commande 'xhost + laptop' sera suffisante, si vous quittez la partie 'laptop' de cette commande 'xhost +', alors N'IMPORTE QUI peut se connecter au Xserver et afficher des choses.
N'oubliez pas que votre souris n'est PAS «connectée» au poste de travail Xserver et que vous ne pourrez PAS manipuler les fenêtres ni cliquer sur des éléments.
Si vous souhaitez que la souris soit connectée, je recommanderais quelque chose comme x2x, synergy, vnc ou une application de partage d'écran basée sur X Windows.
la source