Frage Gedit kann nicht auf mehreren Remote-Computern mit ssh verwendet werden


Nachdem ich die letzte meiner 5 Remote-Maschinen eingerichtet hatte, entschied ich mich zu testen, ob das Netzwerk gut funktionierte, indem man sich mit jedem Gerät verband und gedit öffnete.

Zu meiner Bestürzung, als ich versuchte, gedit auf der zweiten Maschine zu öffnen, wurde ich begrüßt mit:

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

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

Das Schließen von gedit half nicht, aber als ich meine ssh-Verbindung zum ersten entfernten Rechner schloss, konnte ich gedit auf dem zweiten öffnen. Ich entschied mich zu überprüfen, ob dies ein Problem mit allen X-Programmen war, aber ich konnte xeyes auf mehreren entfernten Rechnern öffnen.

Meine Frage ist, warum verhindert das Öffnen von Gedit auf einem Rechner, dass ich es auf einem anderen öffne, bis die erste SSH-Sitzung beendet ist? Und gibt es eine Möglichkeit, dies oder einen Workaround zu beheben? Ich nicht brauchen Mehrere gedits auf einmal geöffnet zu haben, aber ich möchte am wenigsten in der Lage sein, die Verbindung zu einer der Maschinen schließen zu müssen, bevor ich sie auf einer anderen Maschine öffnen kann.

Meine ssh_config ist mit 'ForwardX11' und 'ForwardX11Trusted' eingerichtet, beide sind auf yes gesetzt, falls dies relevant ist.

Update: Ich habe beschlossen, ein paar mehr Programme zu versuchen, und festgestellt, dass, während ich Nautilus durch ssh auf mehreren Maschinen öffnen kann, bekomme ich eine Reihe von Warnungen Verbindung abgelehnt, bevor es öffnet.


6
2017-08-21 17:41


Ursprung


Hast du versucht, hinzuzufügen DISPLAY=:0 vor dem gedit Befehl? Etwas wie DISPLAY=:0 gedit - hytromo
@hakermania Ich bekomme keine Fehler, wenn ich das mache, aber ich sehe das gedit-Fenster nicht ... - StephenTG
Warum brauchen Sie gedit anstelle eines terminalbasierten Texteditors wie nano oder vi? - amc
@amc Ich habe versucht, mit vi, aber ich habe Probleme, den Dreh raus. Habe nano nicht ausprobiert. So ist es einfacher für mich, Verbindungen zu schließen und nur Dateien auf einer Maschine gleichzeitig zu bearbeiten, als alles, was mit vi zu tun hat. Wahrscheinlich etwas, das ich irgendwann aufheben sollte, aber im Moment scheint es die Mühe nicht wirklich wert zu sein. - StephenTG
Ich benutze Nautilus auf dem lokalen Computer: Wählen Sie im Menü oben auf dem Bildschirm die Option zum Herstellen einer Verbindung zum Server und geben Sie die Serverinformationen ein. Sobald Sie verbunden sind, können Sie den Standort mit ctrl-d als Lesezeichen speichern. Dann doppelklicken Sie auf die Datei, die Sie in gedit bearbeiten möchten, und gehen Sie von dort aus. - amc


Antworten:


export $(dbus-launch) auf der Remote-Maschine löste dieses Problem für mich.


5
2017-11-03 12:34



hat wunderbar für mich gearbeitet. (zusammen mit export NO_AT_BRIDGE=1$) - IljaBek
das war einfach, danke - jcollum
Das hat funktioniert! Kennt jemand die Hintergrundgeschichte? Warum wird das jetzt benötigt, während es vorher nicht notwendig war? Gibt es eine Möglichkeit, dies dauerhaft zu beheben? Randnotiz: Da dies alle GUI-Anwendungen betrifft, kann es für gedit nicht so wichtig sein, aber für Anwendungen, die viel kompliziertere Klischees beinhalten - e. G. Palimpsest oder gparted - das ist eine Art von wesentlicher Bedeutung. - Nicolas


Dies ist ein Problem mit dem, was als X-Display-Manager (oder X-Server) auf dem PC / Laptop fungiert, von dem aus Sie gedit testen. Welche Betriebssystem- und X-Server-Software verwenden Sie?

In der Regel umfasst der Prozess zum Anzeigen einer Remote-X-Anwendung auf Ihrem lokalen PC Folgendes:

  • X-Server auf dem lokalen PC, der zum Autorisieren von Remote-Verbindungen konfiguriert ist
  • SSH-Tunnel zum entfernten System
  • Einstellen einer Umgebungsvariablen DISPLAY, um auf Ihren lokalen PC zu zeigen (entweder über den Namen oder die IP-Adresse)

Wenn Sie in Windows sind, Xming funktioniert gut als X-Server mit Putty oder SSH-Client von ssh.com .. Es würde Ihnen erlauben, Ihre lokalen X-Displays zu verwalten und Remote-Apps zu autorisieren, auf Ihrem lokalen System angezeigt zu werden.


1
2017-08-23 15:52



Auf allen beteiligten Computern läuft Ubuntu 12.04, alle PCs, keine Laptops. Wie würde ich überprüfen, welche spezielle X-Server-Software sie ausführen? - StephenTG
Auch als Anmerkung, da basierend auf Ihrer Antwort ich in meiner Frage nicht klar gewesen sein könnte: Ich kann gedit auf jedem einzelnen Remote-Computer durch ssh geöffnet werden, tritt das Problem nur auf, wenn ich versuche, es auf einem Computer zu öffnen, wenn ich habe immer noch eine aktive ssh-Verbindung zu einer anderen, die entweder gedit offen ist oder vorher geöffnet hatte. - StephenTG
Entschuldigung, habe das gerade gesehen. Ich denke, das ist wahrscheinlich ein Problem mit Ihrem DBUS_SESSION. Vielleicht wird es während der ssh-Weiterleitung nicht weitergeleitet (genauso wie Ihre DISPLAY-Variable weitergeleitet wird). Oder vielleicht besitzt der Benutzer nicht alle Dateien unter .dbus. Versuch und tu ein ls -ltr .dbus/session-bus ODER überprüfen Sie, ob alle Dateien unter .dbus dem Benutzer gehören .. sagen .. find .dbus ! -user <username-that-runs-gedit> .. Sie müssen möglicherweise ein tun chmod -R <username>.<groupname> .dbus. - Chux Uzoeto


1) Verwenden Sie einen Befehlszeilen-Texteditor

ssh in die Remote-Maschine über das Terminal und verwenden nano oder vi um die Textdatei zu öffnen und zu bearbeiten.

Ich finde nano, um mehr Newbie-freundlich zu sein, zum Teil, weil es dir die Schlüsselkombinationen für verschiedene Handlungen direkt in deinem Terminalfenster zeigt.

So öffnen Sie eine Datei mit nano: nano filename.txt oder sudo nano filename.txt (wenn Sie Root-Rechte benötigen)


2) Benutze nautilus / gedit auf dem lokalen Rechner

Öffnen Sie ein Nautilus-Dateibrowserfenster und wählen Sie "Verbinden mit Server" aus dem Menü im oberen Bereich.

enter image description here

Geben Sie die Serverinformationen ein (verwenden Sie ssh: // oder sftp: // für SSH-Verbindungen).

enter image description here

Sobald Sie verbunden sind, können Sie den Standort mit Lesezeichen versehen Strg+d. Dann doppelklicken Sie auf die Datei, die Sie in gedit bearbeiten möchten, und gehen Sie von dort aus.

Ein Nachteil: Wenn Sie sich nicht als root anmelden, ist das Öffnen von Dateien, die Root-Rechte erfordern, weniger einfach. Eine Sache, die Sie tun können, wenn Sie haben nautilus-open-terminalinstalliert, klicken Sie mit der rechten Maustaste in das Nautilus-Fenster, in dem sich die Datei befindet, und wählen Sie "In Remote-Terminal öffnen", und verwenden Sie dann sudo nano filename.txt wie oben.


1
2017-08-23 16:41



+1, um eine völlig hilfreiche Problemumgehung zu sein, obwohl ich etwas länger durchhalten werde, um zu sehen, ob es eine Lösung (oder eine Erklärung, warum es keine Lösung geben kann) für das, was ich erreichen wollte, bevor ich es akzeptiere - StephenTG