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
code
Folgendes 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.