Ich glaube, das Problem, dem Sie begegnen, ist, dass der SSH-Server nicht garantieren kann, dass ein anderer Benutzer eine bestimmte Displaynummer (und einen Port) nicht bereits verwendet hat (lokal oder remote), daher muss er eine offene auswählen. Ich weiß es nicht genau, aber ich gehe davon aus, dass es versucht, sie nacheinander zu öffnen, und stoppt beim ersten, das geöffnet wird. Alle offenen Display-Ports (einschließlich einiger, die nicht durch einen alten Prozess geschlossen wurden) können den von Ihnen gewünschten Port unbegrenzt offen halten.
Obwohl dies keine Garantie darstellt, können Sie versuchen, einen anderen Wert für X11DisplayOffset
die Server einzustellen sshd_config
. Das hält noch nicht einen anderen Benutzer oder gar einen Schurkenprozess an, der das erste verfügbare X-Display / den ersten Port offen hält.
Alternativ können Sie versuchen, die DISPLAY
Variable manuell (auf der Serverseite) auf eine "ungewöhnliche" oder hohe Portnummer einzustellen, in der Hoffnung, dass Sie die normalerweise verwendeten Ports mit niedrigerer Nummer vermeiden können. zB wählen DISPLAY=:76
, was bedeutet, dass die Port müssen Sie dann nach vorn Port 6076 zurück zu Ihrem lokalen X - Server; Falls Sie nicht wussten, ist der TCP-Port X 6000 + DISPLAY-Nummer (VNC-Server verwenden normalerweise 5900 + DISPLAY, IIRC). Sie können diese manuelle Weiterleitung für Ihr SSH-Aufruf folgendermaßen durchführen:
ssh -R6076:localhost:6000 server
Dadurch wird Port 6076 am entfernten Ende (Server) an Ihre lokale Anzeige weitergeleitet (vorausgesetzt, DISPLAY: 0). Der Nachteil dieses Ansatzes ist, dass Sie sich jetzt mit allen XAuth-Elementen befassen müssen, ssh
die automatisch mit -X erledigt werden (siehe diesen anderen Post für Hinweise), aber es sollte funktionieren. YYMV und die fummeligen Teile, die dem Leser als Übung zur Verfügung stehen ;-).