Wie führe ich Gnome-Terminal auf einem Remote-CentOS 7-Rechner aus?

Wie führe ich Gnome-Terminal auf einem Remote-CentOS 7-Rechner aus?

Mein lokaler Rechner ist Linux Mint und der Remote-Rechner CentOS 7. Ich versuche, das Gnome-Terminal auf dem Remote-Rechner mit X-Forwarding zu öffnen, aber es funktioniert nicht.

Wenn ich mich im interaktiven Modus mit dem Host verbinde

$ ssh -Y centos-host

Dann kann ich in der geöffneten Sitzung Gnome-Terminal und X-Forwarding ausführen.

$ gnome-terminal 
$ netstat -nltp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      -  

Aber wenn ich versuche zu rennen

$ ssh -Y centos-host gnome-terminal

Das Fenster mit dem Gnome-Terminal öffnete sich, aber es wurde kein Tunnel für X erstellt.

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -

Ich habe eine andere Linux Mint-Remote-Maschine und hatte damit kein solches Problem. Ich denke also, dass mit CentOS 7 etwas nicht stimmt.

Bitte helfen Sie.
Danke.

Antwort1

Der Grund dafür ist, dass gnome-terminales sich selbst in den Hintergrund verzweigt. Wenn Sie es in Ihrer interaktiven sshSitzung ausführen, werden Sie feststellen, dass Sie eine neue Eingabeaufforderung erhalten, obwohl das Terminal noch geöffnet ist. Im nicht-interaktiven Fall wird, sobald dies geschieht, sshdenken, dass der Befehl beendet wurde und die Sitzung geschlossen wird, einschließlich des Schließens des lauschenden X11-Sockets auf dem Server. Da noch aktive X11-Verbindungen bestehen, sshwird es nicht sofort beendet, weshalb essieht ausals ob die Sitzung noch aktiv wäre, jedoch können keine neuen X11-Verbindungen geöffnet werden.

Früher war dies mit möglich gnome-terminal --disable-factory, aber leider wurde dies gnome-terminalirgendwann entfernt. Sie haben jetzt zwei Möglichkeiten:

  • Verwenden Sie ein anderes Terminalprogramm, das nicht in den Hintergrund wechselt, beispielsweisexterm
  • Führen Sie direkt nach dem Start gnome-terminalin derselben sshSitzung einen Befehl aus, der nicht beendet wird, beispielsweisessh -Y server 'gnome-terminal; echo Press enter to exit; read'

Antwort2

Aufbau:

  • CentOS Linux Version 7.6.1810 (Core)
  • /etc/ssh/sshd_configenthält:
X11Forwarding yes

Der folgende Befehl funktioniert bei mir:

ssh -Y HOST bash -l -c gnome-terminal --display=${DISPLAY} < /dev/null > /dev/null  2>&1 &

Der gnome-terminal --disable-factorymir mitgeteilte Support --disable-factorywird nicht mehr unterstützt.

verwandte Informationen