Question Impossible d'utiliser gedit sur plusieurs machines distantes à l'aide de ssh


Après avoir installé la dernière de mes 5 machines distantes, j'ai décidé de tester le bon fonctionnement du réseau en me connectant à chacune et en ouvrant gedit.

À ma grande consternation, lorsque j'ai essayé d'ouvrir gedit sur la deuxième machine, j'ai été accueilli avec:

** (gedit:1862): WARNING **; Could not connect: Connection refused

** (gedit:1862): WARNING **; Could not connect to session bus

La fermeture de gedit n'a pas aidé, mais quand j'ai fermé ma connexion ssh à la première machine distante, j'ai pu ouvrir gedit sur la seconde. J'ai décidé de vérifier s'il s'agissait d'un problème avec tous les programmes X, mais j'ai pu ouvrir xeyes sur plusieurs machines distantes.

Ma question est la suivante: pourquoi l'ouverture à distance de gedit sur une machine m'empêche-t-elle de l'ouvrir jusqu'à la fermeture de la première session ssh? Et existe-t-il un moyen de résoudre ce problème ou une solution de contournement? Je ne avoir besoin d'avoir plusieurs gedits ouverts en même temps, mais j'aimerais moins pouvoir fermer la connexion à l'une des machines avant de pouvoir l'ouvrir sur une autre.

Mon ssh_config est configuré avec 'ForwardX11' et 'ForwardX11Trusted' définis sur yes, au cas où cela serait pertinent.

Mise à jour: J'ai décidé d'essayer quelques programmes supplémentaires et j'ai découvert que même si nautilus pouvait être ouvert via ssh sur plusieurs machines, je reçois un certain nombre d'avertissements de connexion refusés avant son ouverture.


6
2017-08-21 17:41


origine


Avez-vous essayé d'ajouter DISPLAY=:0 avant le gedit commander? Quelque chose comme DISPLAY=:0 gedit - hytromo
@hakermania Je n'ai pas d'erreurs quand je fais ça, mais je ne vois pas la fenêtre gedit ... - StephenTG
Pourquoi avez-vous besoin d'utiliser gedit au lieu d'un éditeur de texte basé sur un terminal comme nano ou vi? - amc
@ amc J'ai essayé d'utiliser vi, mais j'ai des problèmes pour le maîtriser. Je n'ai pas essayé le nano. Comme c'est le cas, il est plus facile pour moi de fermer des connexions et de ne modifier que des fichiers sur une machine à la fois plutôt que de faire quelque chose de impliqué à distance dans vi. Probablement quelque chose que je devrais éventuellement reprendre, mais pour le moment, cela ne semble pas vraiment valoir la peine. - StephenTG
Je veux dire utiliser Nautilus sur une machine locale: dans le menu du panneau supérieur, sélectionnez Connexion au serveur et entrez les informations du serveur. Une fois connecté, vous pouvez ajouter un signet à l'emplacement en utilisant ctrl-d. Ensuite, double-cliquez sur le fichier que vous souhaitez modifier dans gedit et partez de là. - amc


Réponses:


export $(dbus-launch) sur la machine distante résolu ce problème pour moi.


5
2017-11-03 12:34



travaillé pour moi à merveille. (ensemble avec export NO_AT_BRIDGE=1$) - IljaBek
c'était facile, merci - jcollum
Thx cela a fonctionné! Est-ce que quelqu'un connaît l'histoire de fond? Pourquoi est-ce nécessaire maintenant, alors que ce n'était pas nécessaire auparavant? Est-il possible de résoudre ce problème en permanence? Note complémentaire: comme cela affecte toutes les applications d'interface graphique, ce n'est peut-être pas très important pour gedit, mais pour les applications impliquant des équivalents cli beaucoup plus compliqués - e. g. palimpseste ou gparted - c'est essentiel. - Nicolas


Ceci est un problème avec tout ce qui agit en tant que gestionnaire d'affichage X (ou serveur X) sur le PC / ordinateur portable à partir duquel vous testez gedit. Alors, quel système d'exploitation et quel logiciel serveur X utilisez-vous?

En règle générale, le processus d'affichage d'une application X distante sur votre PC local implique:

  • Serveur X sur le PC local, configuré pour autoriser les connexions à distance
  • Tunnel SSH vers le système distant
  • définir une variable d'environnement DISPLAY pour pointer vers votre PC local (par nom ou adresse IP)

Si vous êtes dans les fenêtres, Xming fonctionne bien en tant que serveur X avec mastic ou client ssh à partir de ssh.com. Cela vous permettrait de gérer vos affichages X locaux et d'autoriser l'affichage d'applications à distance sur votre système local.


1
2017-08-23 15:52



Tous les ordinateurs impliqués exécutent Ubuntu 12.04, tous les PC, pas les ordinateurs portables. Comment pourrais-je vérifier quel logiciel serveur X particulier ils exécutent? - StephenTG
Aussi, comme note, puisque sur la base de votre réponse je n’aurais peut-être pas été clair dans ma question: je peux faire en sorte que gedit s’ouvre sur chaque machine distante individuelle via ssh, le problème ne survient que si avez toujours une connexion ssh active à un autre qui a ouvert gedit ou l'a précédemment ouvert. - StephenTG
Désolé, je viens de voir ça. Je pense que c'est probablement un problème avec votre DBUS_SESSION. Peut-être n'est-il pas transféré pendant la transmission ssh (de la même manière que votre variable DISPLAY est transmise). Ou peut-être que l'utilisateur ne possède pas tous les fichiers sous .dbus. Essayez de faire un ls -ltr .dbus/session-bus OU vérifiez que tous les fichiers sous .dbus sont la propriété de l'utilisateur .. dites .. find .dbus ! -user <username-that-runs-gedit> .. Vous devrez peut-être faire un chmod -R <username>.<groupname> .dbus. - Chux Uzoeto


1) Utiliser un éditeur de texte en ligne de commande

ssh dans la machine distante via le terminal et utiliser nano ou vi pour ouvrir le fichier texte et éditer.

Je trouve nano plus convivial pour les débutants, en partie parce qu'il montre les combinaisons de touches pour différentes actions directement dans la fenêtre de votre terminal.

Pour ouvrir un fichier en utilisant nano: nano filename.txt ou sudo nano filename.txt (si vous avez besoin des privilèges root)


2) Utilisez nautilus / gedit sur la machine locale

Ouvrez une fenêtre du navigateur de fichiers Nautilus et sélectionnez "Se connecter au serveur" dans le menu du panneau supérieur.

enter image description here

Entrez les informations du serveur (utilisez ssh: // ou sftp: // pour les connexions ssh).

enter image description here

Une fois connecté, vous pouvez ajouter un signet à l'emplacement en utilisant ctrl+. Ensuite, double-cliquez sur le fichier que vous souhaitez modifier dans gedit et partez de là.

Un inconvénient: À moins que vous n'utilisiez ssh en tant que root, l'ouverture de fichiers nécessitant des privilèges root est moins simple en utilisant cette approche. Une chose que vous pouvez faire, si vous avez nautilus-open-terminalinstallé, est de faire un clic droit dans la fenêtre nautilus où le fichier est situé et sélectionnez "Ouvrir dans le terminal distant", puis utilisez sudo nano filename.txt comme ci-dessus.


1
2017-08-23 16:41



+1 pour être une solution de contournement entièrement utile, bien que je reste un peu plus longtemps pour voir s'il existe une solution (ou une explication pour laquelle il ne peut y avoir de solution) pour ce que j'essayais d'accomplir avant de l'accepter - StephenTG