Was bedeutet "Warnung: Setup der nicht vertrauenswürdigen X11-Weiterleitung fehlgeschlagen: xauth-Schlüsseldaten wurden nicht generiert", wenn mit -X gesendet wird?

134

Wenn ich ssh -Xauf meinem Mac (mit OS X 10.6.7) eine Verbindung zu meiner Ubuntu-Box (11.04) herstelle, wird folgende Warnung angezeigt:

Warnung: Setup der nicht vertrauenswürdigen X11-Weiterleitung fehlgeschlagen: xauth-Schlüsseldaten nicht generiert Warnung: Keine xauth-Daten; Verwenden gefälschter Authentifizierungsdaten für die X11-Weiterleitung.

Kann ich etwas tun, damit diese Warnung verschwindet? Wenn nicht, kann ich das ignorieren?

Die X11-Weiterleitung scheint einwandfrei zu funktionieren, obwohl die folgende Meldung angezeigt wird:

Xlib: Erweiterung "RANDR" fehlt bei Anzeige "localhost: 10.0".

Hängt das mit der Warnung zusammen? (Ich vermute nicht. Wenn nicht, werde ich eine neue Frage dazu stellen.)

Daryl Spitzer
quelle
1
Ist das Programm xauth auf dem Ubuntu-Server installiert?
Slubman
sudo apt-get install xauthsagt mir "xauth ist bereits die neueste Version"
Daryl Spitzer
Was ist die Ausgabe von 'which xauth', wenn Sie auf dem Ubuntu-Server angemeldet sind?
Slubman
In der Tat denke ich, dass Sie diese Erklärung lesen sollten: mail-archive.com/[email protected]/msg17927.html… Sie können diese Warnung ignorieren
Slubman
2
Gelegentlich kann dies durch Probleme mit Ihrer ~ / .Xauthority-Datei verursacht werden. Wenn Sie es löschen, wird es beim nächsten Anmeldeversuch neu erstellt.
Michael

Antworten:

145

Gibt es einen Grund, warum Sie nicht das -Y-Flag anstelle des -X-Flags verwenden möchten?

Der Unterschied zwischen -X und -Y besteht ganz einfach darin, dass -Y die vertrauenswürdige X11-Weiterleitung aktiviert.

user5336
quelle
4
Nein, mir war die -Y-Flagge einfach nicht bewusst, als ich die Frage schrieb. Ich glaube, das hat sich als Lösung herausgestellt. Ändern Sie Ihre Antwort so, dass es keine Frage ist (und es wäre schön, wenn Sie den Unterschied zwischen -Y und -C kurz erläutern würden), und ich werde es akzeptieren.
Daryl Spitzer
Gibt es einen Fall, in dem Sie nicht -Y anstelle von -X verwenden möchten?
Hahn
@Rooster für sehr alte Systeme, bei denen -Y nicht unterstützt wird, würde ich sagen
Petr
Tipp zur Fehlerbehebung: Führen Sie "ssh -vv ..." aus, und suchen Sie nach der Zeile xauth und den Fehlermeldungen. Sie können versuchen, die angezeigte xauth-Zeile direkt auszuführen. Bei mir musste es so etwas wie "xauth-Liste: 0" (vertrauenswürdig) sein, nicht "xauth -f / tmp / ssh ... Liste: 0" (nicht vertrauenswürdig). Welches -Y behoben und "ForwardX11Trusted yes" im Remote-Host / etc / ssh / ssh_config (oder ~ / .ssh / config) ebenfalls behoben.
Curtis Yallop
Diese Lösung funktionierte auch mit Cygwin / X.
linux64kb
25

Wenn Sie 2015 hierher kommen: Auch wenn alles andere ordnungsgemäß eingerichtet ist, kann dies unter Mac OS X 10.10 Yosemite passieren, wenn Sie ssh -Xeine XQuartz-Version <= 2.7.7 verwenden und ausführen. Die Hauptursache sind X11-Display-Sockets, die außerhalb des xauth-Suchpfads geschrieben werden: Problem # 2068 im XQuartz-Tracker.

Bearbeiten: Ein behobener XQuartz wurde auf der neuen Homepage xquartz.org veröffentlicht , und die Installation der neuesten Version von dort (derzeit 2.7.9) wird das Problem umgehen.

Will Angley
quelle
1
Danke! Ich hatte keine Ahnung , dass die XQuartz ich nur von oben auf der Seite ist XQuartz heruntergeladen nicht wirklich die neueste Version.
craigds
Erwähnenswert ist, dass brew install xquartzderzeit die veraltete Version 2.7.7 installiert wird.
Martin Cleaver
brew install Caskroom/cask/xquartzsollten Sie die neuesten XQuartz mit HomeBrew bekommen
Nick
Oder kürzer brew cask install xquartz.
Franklin Yu
17

Wenn Sie die gleiche Meldung auch bei der Verwendung erhalten -Y, xauthfehlt das Programm möglicherweise auf dem Server. Auf Debian-ähnlichen Systemen benötigen Sie das xauthPaket. Auf RedHat-ähnlichen Systemen benötigen Sie das xorg-x11-xauthPaket.

Flup
quelle
15

"Nicht vertrauenswürdig" bedeutet in diesem Zusammenhang, dass Sie der Verbindung nicht vertrauen. SSH wird zusätzliche Sicherheitsmaßnahmen ergreifen, um die X11-Weiterleitung sicherer zu machen. "Vertrauenswürdig" bedeutet, dass Sie absolut sicher sind, dass kein angemeldeter Benutzer auf dem Remote-Host Zugriff auf Ihre Xauth-Daten erhält und diese beispielsweise zur Überwachung Ihrer Tastenanschläge verwendet.

Diese Terminologie hat mich jahrelang verwirrt. Ich dachte "Vertrauenswürdige" Verbindungen wären sicherer. Aber eigentlich ist es eine Option, die Sie in Situationen verwenden sollten, in denen die Verbindung vertrauenswürdig ist und Sie Dinge ausführen möchten, ohne dass zusätzliche Sicherheitsmaßnahmen im Weg stehen. "Nicht vertrauenswürdig" macht es (etwas) sicherer, mit einem nicht vertrauenswürdigen Remote-Host umzugehen.

Eine "nicht vertrauenswürdige" Verbindung versucht zu begrenzen, was ein schwarzer Hut für Sie tun könnte, indem Sie die X11-Sicherheitserweiterung aktivieren und andere Erweiterungen deaktivieren, die Sie (hoffentlich) nicht benötigen. Dies ist wahrscheinlich der Grund, warum RandR mit -X deaktiviert ist. Müssen Sie in der Lage sein, Ihr X-Display vom Remote-Host aus zu drehen?

Es ist auch wichtig zu beachten, dass die "nicht vertrauenswürdige" X11-Weiterleitung nach einer bestimmten Zeit deaktiviert wird, um zu verhindern, dass Sie sie versehentlich aktiviert lassen. Neue Versuche, Fenster zu öffnen, schlagen danach fehl. Das hat mich mehrmals gebissen, bevor ich genug Dokumente gelesen habe, um zu verstehen, was passiert ist.

Tetsujin
quelle
9

Ich habe kein Setup, das dieses Verhalten aufweisen kann, also ist dies eine Einstellung im Dunkeln:

Die Warnung kann unterdrückt werden , wenn Sie festgelegt , ForwardX11Trustedum "no"für Hosts , die diese Warnung geben. Sie können dies entweder in ~/.ssh/configoder /etc/ssh/ssh_configeinfügen und die Option für einen bestimmten Host festlegen, indem Sie sie Host <hostname>in die obige Zeile einfügen. Die <hostname>Komponente entspricht der Eingabe in der Befehlszeile (nicht dem aufgelösten Hostnamen) und kann Platzhalterzeichen enthalten.

Michael Lowman
quelle
Man kann eine ssh -Yvertrauenswürdige X11-Weiterleitung verwenden, aber wie kann man die nicht vertrauenswürdige Weiterleitung beheben?
Pavel Šimerda
Ich habe den gleichen Fehler in Redhat und kann ihn jetzt beheben, indem ich die Konfigurationsdatei /etc/ssh/ssh_configauf der Clientseite bearbeite . Vielen Dank
Gangadhar Jannu
7

ACHTUNG (es ist müde, unvollständige Antworten zu lesen, die zu Sicherheitslücken führen)

1 / using ssh -Y bedeutet, hier falsche xauth-Informationen zu haben, die schlecht sind!

2 / ssh -X sollte funktionieren, da XQuartz nach der Aktivierung xauth verwendet. Das einzige Problem ist, dass ssh in / usr / X11R6 / bin nach xauth sucht und auf Macos mit XQuartz in / opt / X11 / bin

Sicheres Lösen:

1 / Aktivieren Sie die erste Option auf der Registerkarte Sicherheit der Einstellungen (Cmd-,), mit der authentifizierte Verbindungen aktiviert werden

2 / add

XAuthLocation /opt/X11/bin/xauth

in $ HOME / .ssh / config

3 / ssh -X you_serverarbeitet auf sichere Art und Weise

Koko
quelle
6

Wenn die Installation xauthnicht richtig funktioniert, ist eine beschädigte .XauthorityDatei möglicherweise ein besonders ärgerlicher Fall . In diesem speziellen Fall konnten einige X-Clients arbeiten, andere jedoch mit einer größeren Tendenz, mit neueren Anzeigen zu versagen. Durch Entfernen und erneutes Erstellen der .XauthorityDatei kann das Problem behoben werden.

hildred
quelle
6

Ausschluss serverseitiger Probleme

Zunächst sollten Sie serverseitige Probleme ausschließen. Können Sie ssh -Xvon jedem anderen Host erfolgreich? Funktioniert es ssh -Y, während ssh -Xes nicht funktioniert? Nehmen Sie in beiden Fällen an, dass ssh + X11 auf Ihrem Server korrekt eingerichtet ist, und fahren Sie mit dem nächsten Abschnitt fort.

Wenn Sie nicht in der Lage sind, dies zu überprüfen (Sie haben beispielsweise nur einen Laptop mit X11), können Sie sshmithilfe einer gefälschten Sitzung vom Server auf sich selbst zugreifen:

  1. export DISPLAY=:44# (Bourne-Shell) oder
    setenv DISPLAY :44# (csh / tcsh)
  2. xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234 # Scheinplätzchen nur für diesen Test
  3. ssh -X localhost env |grep DISPLAY

Erwartetes Ergebnis: Am Remote-Ende der SSH-to-Self-Sitzung sollte eine DISPLAY-Variable festgelegt sein. Wenn Sie kein Ergebnis erhalten, ist Ihr Server wahrscheinlich falsch konfiguriert (z. B. xauthfehlen die X11-Bibliotheken und / oder der Befehl; oder die sshd-Konfiguration kann so eingestellt werden, dass der X11-Zugriff verweigert wird).

Auf Mac: Überprüfen Sie, ob Xquartz auf dem neuesten Stand ist

Wie pro Will Angley Antwort

Untersuchen Sie die ssh -vv -XAusgabe

Die von Ihnen angegebene Fehlermeldung ist ein Symptom, das viele Ursachen haben kann. Versuchen Sie es erneut mit . Dies sollte Ihnen zusätzliche Hinweise geben, warum die Einrichtung des X11-Tunnels fehlgeschlagen ist.ssh -X -vv remotehost

Wird die folgende Meldung angezeigt?

debug1: Kein xauth Programm.
Wenn ja,

  1. Notieren Sie sich, wo sich auf Ihrem Client-System der xauthBefehl befindet:
    welches xauth
  2. Fügen Sie Folgendes ganz am Ende Ihrer ~ / .ssh / config hinzu (und fügen Sie einen Kommentar hinzu, um sich daran zu erinnern, ihn in Zukunft dort zu behalten):
    Gastgeber *
        XAuthLocation / opt / X11 / bin / xauth
    
    Passen Sie diesen Pfad gemäß den Ergebnissen von Schritt 1 - Danksagung an Jan-Willem Arnold an
DomQ
quelle
3

Wie oben bereits erläutert, hat bei mir Folgendes funktioniert:

Bearbeiten Sie ~ / .ssh / config , um die Zeilen hinzuzufügen

Host *
    XAuthLocation /opt/X11/bin/xauth

und jetzt funktioniert ssh -X hostname (XQuartz 2.7.11, macOS 10.4 Mojave)

Schäfer
quelle
0

Ich hatte bereits den neuesten XQuartz 2.7.11 installiert, aber ich glaube, ich habe seitdem auch ein paar Mal das Betriebssystem aktualisiert. Ich habe XQuartz 2.7.11 neu installiert und jetzt funktioniert es einwandfrei.

Ulmo
quelle
-3

xauth add `hostname` / unix: 10 MIT-MAGIC-COOKIE-1` openssl rand -hex 16`

Marc Williams
quelle
1
Ich verstehe nicht ...
Pierre.Vriens