Wenn ich ssh -X
auf 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.)
ssh
x11forwarding
warning
Daryl Spitzer
quelle
quelle
sudo apt-get install xauth
sagt mir "xauth ist bereits die neueste Version"Antworten:
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.
quelle
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 -X
eine 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.
quelle
brew install xquartz
derzeit die veraltete Version 2.7.7 installiert wird.brew install Caskroom/cask/xquartz
sollten Sie die neuesten XQuartz mit HomeBrew bekommenbrew cask install xquartz
.Wenn Sie die gleiche Meldung auch bei der Verwendung erhalten
-Y
,xauth
fehlt das Programm möglicherweise auf dem Server. Auf Debian-ähnlichen Systemen benötigen Sie dasxauth
Paket. Auf RedHat-ähnlichen Systemen benötigen Sie dasxorg-x11-xauth
Paket.quelle
"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.
quelle
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 ,
ForwardX11Trusted
um"no"
für Hosts , die diese Warnung geben. Sie können dies entweder in~/.ssh/config
oder/etc/ssh/ssh_config
einfügen und die Option für einen bestimmten Host festlegen, indem Sie sieHost <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.quelle
ssh -Y
vertrauenswürdige X11-Weiterleitung verwenden, aber wie kann man die nicht vertrauenswürdige Weiterleitung beheben?/etc/ssh/ssh_config
auf der Clientseite bearbeite . Vielen DankACHTUNG (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_server
arbeitet auf sichere Art und Weisequelle
Wenn die Installation
xauth
nicht richtig funktioniert, ist eine beschädigte.Xauthority
Datei 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.Xauthority
Datei kann das Problem behoben werden.quelle
Ausschluss serverseitiger Probleme
Zunächst sollten Sie serverseitige Probleme ausschließen. Können Sie
ssh -X
von jedem anderen Host erfolgreich? Funktioniert esssh -Y
, währendssh -X
es 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
ssh
mithilfe einer gefälschten Sitzung vom Server auf sich selbst zugreifen:export DISPLAY=:44
# (Bourne-Shell) odersetenv DISPLAY :44
# (csh / tcsh)xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234
# Scheinplätzchen nur für diesen Testssh -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.
xauth
fehlen 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 -X
AusgabeDie 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?
Wenn ja,xauth
Befehl befindet:quelle
Wie oben bereits erläutert, hat bei mir Folgendes funktioniert:
Bearbeiten Sie ~ / .ssh / config , um die Zeilen hinzuzufügen
und jetzt funktioniert ssh -X hostname (XQuartz 2.7.11, macOS 10.4 Mojave)
quelle
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.
quelle
xauth add `hostname` / unix: 10 MIT-MAGIC-COOKIE-1` openssl rand -hex 16`
quelle