#1 01.01.2019 23:15:52

bianga
Mitglied

ssh X11 Fenster öffnet sich auf Host

Guten Abend,

ich habe heute schon den ganzen Nachmittag getestet und etliche Foren durchsucht, aber ohne Erfolg.

Ich möchte eigentlich nur X11Forwarding über ssh aktivieren.
Das Problem, das Fenster vom gestarteten Programm öffnet sich nicht am Remoterechner sondern auf dem Hostrechner?!
Es öffnet sich also genau auf dem verkehrten PC...
Auf beiden Rechnern ist Arch installiert.


Hier meine Einstellungen:

Server - sshd_config

AllowTcpForwarding yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
Client - ssh_config

ForwardX11 yes

Was hab ich übersehen? Was mache ich verkehrt?

DANKE!

Gruß Sven

Offline

#2 01.01.2019 23:47:12

niemand
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

Wie stellst du die Verbindung her? Vielleicht -X (oder -Y – je nach Bedarf) vergessen?

Offline

#3 01.01.2019 23:47:39

chepaz
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

Was gibt ein

echo $DISPLAY

aus wenn du dich per SSH auf den Remotehost verbunden hast?

Du verbindest dich auch mit

ssh -X foohost 

?

Offline

#4 01.01.2019 23:56:25

TBone
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

Es startet sich nicht am SSH-Server sondern auf dem Client? Das ist dann genau richtig.

Falls es sich am Server starten soll: Einfach die Environment Variablen eines Programms in der xsession kopieren (/proc/PID/environ) und xyz starten ohne X11Forwarding.

Beitrag geändert von TBone (01.01.2019 23:56:57)

Offline

#5 02.01.2019 00:39:42

bianga
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

niemand schrieb:

Wie stellst du die Verbindung her? Vielleicht -X (oder -Y – je nach Bedarf) vergessen?

Mit -X. Ich habe es aber auch schon mit -Y getestet, ohne Erfolg.

chepaz schrieb:

Was gibt ein echo $DISPLAY aus wenn du dich per SSH auf den Remotehost verbunden hast?

echo $DISPLAY
:1
TBone schrieb:

Es startet sich nicht am SSH-Server sondern auf dem Client? Das ist dann genau richtig.

Ich will mich von meinem Desktop (Client) auf meinen Laptop (Server) verbinden.

ssh -X <IP-Adresse des Laptops>

Die Verbindung wird erfolgreich hergestellt.
Möchte ich jetzt ein Programm mit GUI starten, z.B.

gnome-mines

wird das Fenster auf dem Laptop geöffnet und nicht am Desktop-PC - auf dem Desktop sollte es aber eigentlich geöffnet werden...

Offline

#6 02.01.2019 12:08:42

primus
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

Hallo Sven,

evtl. hilft dir dieser Link ein wenig weiter!
https://unix.stackexchange.com/question … tely/12772

Viel Erfolg!

Beitrag geändert von primus (02.01.2019 12:10:57)

Offline

#7 02.01.2019 12:26:27

chepaz
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

Ein

DISPLAY=localhost:10.0

auf dem Remotehost sollte helfen IMHO.

Offline

#8 02.01.2019 19:29:36

bianga
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

primus schrieb:

Hallo Sven,

evtl. hilft dir dieser Link ein wenig weiter!
https://unix.stackexchange.com/question … tely/12772

Viel Erfolg!

Vielen Dank, führt aber noch nicht zum Erfolg!
Den größten Teil davon hatte ich schon versucht.

Offline

#9 02.01.2019 19:35:40

bianga
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

chepaz schrieb:

Ein

DISPLAY=localhost:10.0

auf dem Remotehost sollte helfen IMHO.

Das hilft tatsächlich! :-)

Muss ich halt jedes Mal neu eingeben...
Sollte die DISPLAY-Variable nicht automatisch auf diesen Wert gesetzt werden? Wo geschieht das? Die ssh_config und die sshd_config scheinen da nicht die richtige Anlaufstelle zu sein.

Ich habe die beiden Dateien auch schon mal mit denen einer Debian und Mint Installation verglichen. Identisch.

Hat noch jemand eine Idee wo der Kern des Problemes liegt?

Danke!!!

Offline

#10 02.01.2019 21:14:52

primus
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

@bianga

Die Display Variable hinterlegt man lt. dem Link in der .bashrc. Datei.

Now since we are done editing ssh_config file, save it when we leave the editor. Now go to folder ~ or $HOME, append export DISPLAY=localhost:0 to your .bashrc file and save it.

# ~/.bashrc
...
...
export DISPLAY=localhost:10.0

Beitrag geändert von primus (02.01.2019 21:23:44)

Offline

#11 03.01.2019 16:53:21

chepaz
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

primus schrieb:

Die Display Variable hinterlegt man lt. dem Link in der .bashrc Datei.

Das könnte seltsame Effekte geben wenn da lokal auch ein X-Server läuft. So kurz aus der manpage zu sshd sollte das wohl die elegantere Lösung sein:

SSHRC
     If the file ~/.ssh/rc exists, sh(1) runs it after reading the environment files but
     before starting the user's shell or command.  It must not produce any output on stdout;
     stderr must be used instead.  If X11 forwarding is in use, it will receive the "proto
     cookie" pair in its standard input (and DISPLAY in its environment).  The script must
     call xauth(1) because sshd will not run xauth automatically to add X11 cookies.

     The primary purpose of this file is to run any initialization routines which may be
     needed before the user's home directory becomes accessible; AFS is a particular example
     of such an environment.
     
     This file will probably contain some initialization code followed by something similar
     to:

        if read proto cookie && [ -n "$DISPLAY" ]; then
                if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
                        # X11UseLocalhost=yes
                        echo add unix:`echo $DISPLAY |
                            cut -c11-` $proto $cookie
                else
                        # X11UseLocalhost=no
                        echo add $DISPLAY $proto $cookie
                fi | xauth -q -
        fi
     
     If this file does not exist, /etc/ssh/sshrc is run, and if that does not exist either,
     xauth is used to add the cookie.

Zugegeben, da stecke ich mental jetzt auch nicht drin und müsste das testen. In den Shell-Profilen hat der export aber IMHO nichts verloren.

Offline

#12 04.01.2019 12:12:59

bianga
Mitglied

Re: ssh X11 Fenster öffnet sich auf Host

Hallo,

ich hab nun noch einmal viel getestet und auch sehr viel gelesen.

Die Lösung mit der .bashrc bzw. dem bash-script sollte funktionieren, löst aber ja das eigentliche Problem nicht sondern stellt nur einen Workaround dar.
Sollte ich keine andere Lösung finden, werde ich aber darauf zurück greifen wink

In der Manpage zu sshd (und auch in diversen Tutorials) steht sinngemäß folgendes:
Das einzig wirklich wichtige ist in der /etc/ssh/sshd_config des Servers die Einstellung

X11Forwarding yes

Alle weiteren Einstellungen die in den verschiedenen Tutorials beschreiben werden (X11DisplayOffset, X11UseLocalhost, ...) sind eigentlich schon per Default-Wert richtig eingestellt. Der Default-Wert gilt automatisch immer, wenn die Einstellung mit # auskommentiert ist. Dem zu folge ist der einzige Wert der wirklich angepasst werden muss X11Forwarding.

Beim Client muss man eigentlich gar nichts ändern, weil man das Forwarding mit dem Parameter -X beim ssh Aufruf aktiviert. In der /etc/ssh/ssh_config muss man es nur dann aktivieren, wenn man es als Standard-Einstellung hinterlegen will.

Alle notwendigen Environment-Variablen, wie z.B. DISPLAY, werden laut Manpage von ssh automatisch auf localhost:10.0 eingestellt. Da muss man sich also eigentlich überhaupt nicht drum kümmern. In einigen Tutorials wird sogar ausdrücklich davon abgeraten!

Ich habe im Haus noch einen Manjaro-Rechner und einen mit Linux Mint. Bei beiden habe ich die config-Dateien eingesehen. Dort beschränkt sich die Voreinstellung auf X11Forwarding.

Warum in meinem Fall der ssh-Server die DISPLAY-Variabel nicht so setzt wie er soll, weiß ich allerdings noch nicht.

Ich bin also weiterhin für Lösungen, Vorschläge bzw. Gedankenansätze dankbar!

Gruß Sven

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums