SSH-weitergeleitetes X11-Display von Linux auf Mac ging nach einiger Zeit verloren

10

Ich habe ein neues und ärgerliches Problem mit der Weiterleitung meiner X11-Verbindung durch ssh, wenn ich mich von einem Mac (10.7.2) unter Linux (Ubuntu 8.04) anmelde. Ich habe keine Probleme damit, mich mit ssh -X beim Remote-Computer anzumelden und eine X11-basierte Anwendung von dieser Shell aus zu starten.

Was kürzlich begonnen hat, ist, dass zusätzliche Aufrufe von X11-Anwendungen von derselben Shell nach einer Weile (in der Größenordnung von Stunden) nicht gestartet werden können, da die weitergeleitete Anzeige blockiert wird (nehme ich an). Wenn ich zum Beispiel versuche, xterm zu starten, erhalte ich die übliche Meldung über eine schlechte DISPLAY-Einstellung, wie zum Beispiel:

xterm Xt-Fehler: Anzeige kann nicht geöffnet werden: localhost: 10.0

Aber die X11-Anwendung, die ich direkt beim Anmelden gestartet habe, läuft immer noch einwandfrei und verwendet genau dieselbe Anzeige (localhost: 10.0), nur dass sie früher gestartet wurde.

Ich habe die ausführliche Protokollierung in sshd_config aktiviert und sehe dies in der Datei /var/log/auth.log als Antwort auf den fehlgeschlagenen xterm-Startversuch:

sshd [22104]: Kanal 8: Öffnen fehlgeschlagen: administrativ verboten: Öffnen fehlgeschlagen

Wenn ich -sh erneut auf den Server ssh -X, eine neue Shell starte und eine neue Anzeige zugewiesen bekomme (localhost: 11.0), wiederholt sich der gleiche Vorgang: Die X11-Anwendungen, die früh gestartet wurden, laufen einwandfrei, solange ich sie offen halte (Tage) ), aber nach ein paar Stunden kann ich keine neuen von dieser Shell starten.

Einzelheiten: OpenSSH-SSHD-Server unter Ubuntu 8.04, Anzeige an einen Mac weitergeleitet, auf dem Lion (10.7.2) mit dem Standard-Apple X-Server ausgeführt wird. Die Systeme sind in einem Ethernet-LAN ​​mit einem einzigen Switch zwischen ihnen verbunden. Auf keinem Computer wird eine Firewall ausgeführt. Bis vor kurzem (vor ein paar Tagen) hat dieses Setup perfekt funktioniert, daher bin ich mir nicht sicher, wo ich als nächstes suchen soll. Ich bin kein X11- oder SSH-Experte, habe aber gute UNIX / Linux-Erfahrung. Weder in der Client- noch in der Serverkonfiguration hat sich etwas Offensichtliches geändert, obwohl ich versucht habe, einige Optionen zu ändern, um dies zu debuggen, z. B. das Setzen von TCPKeepAlive von sshd_config auf no und das Setzen von "host + localhost" (Sie können feststellen, dass ich gegoogelt habe).

Wenn Sie sich von einem Linux 11.10-Laptop über dasselbe Netzwerk und denselben Switch bei demselben Remote-Host anmelden, tritt dieses Problem nicht auf. Ein xterm kann Stunden später erfolgreich von derselben ssh-Anmeldeshell aufgerufen werden, während dasselbe Experiment vom Mac fehlschlägt ( getestet heute Morgen, um sicher zu sein), so scheint es ein Mac-spezifisches Problem zu sein.

Wenn "LogLevel DEBUG3" auf dem Remotecomputer (sshd-Server) eingestellt ist und keine Änderung an den Clientverbindungen durch mich vorgenommen wurde, zeigt /var/log/auth.log über Nacht eine geringfügige Änderung der Verbindungsstatusberichte an. Dies ist die verwendete Portnummer von der einen erfolgreichen SSH-Sitzung von der Linux-Maschine (glaube ich), Verbindung Nr. 7 unten:

sshd [20173]: debug3: Kanal 7: Status: Die folgenden Verbindungen sind offen: \ r \ n # 0 Serversitzung (t4 r0 i0 / 0 o0 / 0 fd 14/13 cfd -1) \ r \ n # 3 X11-Verbindung von 127.0.0.1 Port 57564 (t4 r1 i0 / 0 o0 / 0 fd 16/16 cfd -1) \ r \ n # 4 X11-Verbindung von 127.0.0.1 Port 57565 (t4 r2 i0 / 0 o0 / 0 fd 17) / 17 cfd -1) \ r \ n # 5 X11-Verbindung von 127.0.0.1 Port 57566 (t4 r3 i0 / 0 o0 / 0 fd 18/18 cfd -1) \ r \ n # 6 X11-Verbindung von 127.0.0.1 Port 57567 (t4 r4 i0 / 0 o0 / 0 fd 19/19 cfd -1) \ r \ n # 7 X11-Verbindung von 127.0.0.1 Port 59007

In diesem Bericht ist zwischen den Statusberichten alles gleich, mit Ausnahme der von Verbindung Nr. 7 verwendeten Portnummer, von der ich glaube, dass sie der Linux-Client ist - der einzige, der noch eine Anzeigeverbindung unterhält. Es nimmt im Laufe der Zeit weiter zu, gemessen an einer Abfolge dieser Berichte über Nacht.

Vielen Dank für jede Hilfe,

-Mike

mklein9
quelle
Ich habe das gleiche Problem.
Churnd
Ich habe -vvv mit dem Befehl ssh aktiviert, um Debug-Informationen von der clientseitigen ssh-Sitzung des Mac abzurufen. Ich habe codeFolgendes erhalten : Abgelehnte X11-Verbindung nach Ablauf von ForwardX11Timeout ForwardX11Timeout ist eine Option im ssh-Client des Mac, die die Weiterleitung von einer nicht vertrauenswürdigen Verbindung einschränkt. Möglicherweise würde die Verwendung von -Y anstelle von -X funktionieren. ForwardX11Timeout ist nicht in der Lion's SSH-Manpage dokumentiert. Die Standardeinstellung scheint 20 Minuten zu sein. Eine höhere Einstellung in ssh_config ist möglich, aber der Lion's X-Server stürzt ab, wenn er auf> 596 Stunden eingestellt ist ... was in Millisekunden 31 Bit überläuft. Arrgh. Hoffe das behebt es.
mklein9

Antworten:

13

Die SSH-Sitzungen wurden gestartet, nachdem ich die Datei / etc / ssh_config des Mac-Clients so geändert hatte, dass sie die folgende Zeile enthält:

ForwardX11Timeout 596h

arbeiten alle gut und waren den ganzen Tag. Inzwischen hätten sich alle geweigert, neue xterms zu starten. Ich glaube, dies ist die Antwort und zum Glück eine einfache Lösung, aber das Timeout wird in 3 1/2 Wochen noch auftreten.

mklein9
quelle
3

man ssh_config

ForwardX11Trusted

Wenn diese Option auf "Ja" gesetzt ist, haben Remote-X11-Clients vollen Zugriff auf die ursprüngliche X11-Anzeige. Wenn diese Option auf "Keine" gesetzt ist, werden Remote-X11-Clients als nicht vertrauenswürdig betrachtet und daran gehindert, Daten von vertrauenswürdigen X11-Clients zu stehlen oder zu manipulieren. Darüber hinaus läuft das für die Sitzung verwendete xauth (1) -Token nach 20 Minuten ab. Remote-Clients wird nach dieser Zeit der Zugriff verweigert. Der Standardwert ist "Nein". Ausführliche Informationen zu den Einschränkungen für nicht vertrauenswürdige Clients finden Sie in der X11 SECURITY-Erweiterungsspezifikation.

Isabella
quelle
1
Es kann hilfreich sein, wenn Sie erläutern, warum diese Konfigurationsoption Ihrer Meinung nach das ursprüngliche Problem lösen würde.
pjmorse
Dies erklärt zwar, warum das Problem auftritt, aber einige Überlegungen wären hilfreich.
Stefan Lasiewski
1

So fügen Sie hinzu: "Beantwortet am 7. Januar 12 um 0:11 Uhr mklein9 28129" Die SSH-Sitzungen wurden gestartet, nachdem ich die / etc / ssh_config des Mac-Clients so geändert hatte, dass sie die folgende Zeile enthält:

ForwardX11Timeout 596h

... aber das Timeout wird in 3-1 / 2 Wochen noch auftreten. "

Anscheinend können Sie 0 verwenden und dies setzt das Timeout auf unendlich (solange die Verbindung besteht).

ForwardX11Timeout 0

...

AB.
quelle