Wie kann ich die Warnung Keine xauth Daten verhindern; Verwenden gefälschter Authentifizierungsdaten für die X11-Weiterleitung?

66

Jedes Mal, wenn ich eine SSH-Verbindung von meinem Mac zu einem Linux (Debian) einrichte, erhalte ich die folgende Warnung:

No xauth data; using fake authentication data for X11 forwarding.

Dies gilt auch für Tools, die ssh verwenden, z. B. git oder mercurial.

Ich möchte nur eine lokale Änderung an meinem System vornehmen, um dies zu verhindern.

Hinweis: Ich habe einen X11-Server (XQuartz 2.7.3 (xorg-server 1.12.4)) auf meinem Mac OS X (10.8.1) und er funktioniert ordnungsgemäß. Ich kann die Uhr lokal oder remote erfolgreich starten.

Sorin
quelle
1
Welchen Befehl benutzt du für ssh?
DerfK
@DerfK nur, ssh hostnameaber in meinem habe ~/.ssh/configich vor ForwardX11 yeseiniger Zeit hinzugefügt . Trotzdem ist das etwas, was ich dort haben möchte.
Sorin
Mit Ubuntu 16.04 LTS (August 2017) gebe ich auf. Unterm Strich funktioniert es, obwohl es den Fehler gibt. Ich verwende ssh -Y hostnameunter Linux und ssh -x hostnamebei der Verwendung von OpenSSH unter Windows.
SDsolar

Antworten:

66

Keine der veröffentlichten Lösungen hat für mich funktioniert. Auf meinem Client (Desktop) -System läuft macOS 10.12.5 (Sierra). Ich fügte -vden Optionen für den sshBefehl hinzu und sagte mir,

debug1: No xauth program.

was bedeutet, dass es keinen korrekten Pfad zum xauthProgramm hat. (In dieser Version von macOS ist der Pfad zu kein xauthStandard.) Die Lösung bestand darin, diese Zeile zu /etc/ssh/ssh_config(möglicherweise /etc/ssh/configin einigen Setups) oder zu ~/.ssh/config(wenn Sie keine Administratorrechte haben) hinzuzufügen :

XAuthLocation /opt/X11/bin/xauth

Jetzt ist die Warnmeldung weg.

nmgeek
quelle
10
OH MEIN GOTT. Jahre habe ich versucht, eine Lösung zu finden, und das hat funktioniert. Jahre sage ich! Beachten Sie, dass ich dies getan habe, indem ich diese Zeile unter dem Host *Eintrag in meiner ~/.ssh/configDatei hinzugefügt habe, anstatt sie zu bearbeiten /etc/ssh/ssh_config. Die einzige Dokumentation, die ich dafür gefunden habe, war in man sshd_config.
Demitri
Das hat auch bei mir funktioniert. Ich verstehe, dass XQuartz derzeit aufgrund fehlender Finanzierung nicht gut gewartet wird. Daher denke ich, dass solche Portierungsprobleme weniger sind, als ich erwarten würde.
AlanObject
In der High Sierra; das hat auch bei mir funktioniert.
mklein9
1
Beachten Sie, dass dieses Problem möglicherweise auch dann auftritt, wenn Ihre Shell xauth in Ihrem PATH findet! Ich vermute, der ssh-Client bereinigt Ihren PFAD aus Sicherheitsgründen?
MarcH
1
Diese Lösung hat bei mir nicht funktioniert. Ich benutze Cygwin unter Win7. Das Hinzufügen von "XAuthLocation / usr / bin / xauth", entweder unter dem Eintrag "Host *" oder vor dieser Zeile in ~ / .ssh / config, machte keinen Unterschied.
David M. Karr
22

Fand die Ursache, meine ~/.ssh/configwar unvollständig, du brauchst beides:

Host *
    ForwardAgent yes
    ForwardX11 yes

Mein Fehler war, dass ich nur die ForwardX11-Option enthielt.

Sorin
quelle
12
Ich bin mir nicht sicher, warum dies erforderlich / relevant ist. ForwardAgentwird verwendet, damit zwischengespeicherte Schlüssel ssh-agentmehrere verschachtelte SSH-Verbindungen passieren können. Es sollte keine Relevanz für X11 haben. Und fwiw, einigen zufolge, ist es aus Sicherheitsgründen keine gute Idee: heipei.github.io/2015/02/26/…
underscore_d
2
Das klingt nicht richtig. Was hilft, ist das Deaktivieren der X11-Weiterleitung oder das Korrigieren der xauth-Konfiguration, um sie einzurichten. Es ist nicht mit SSH-Agenten verwandt.
Eckes
Diese Lösung hat bei mir nicht funktioniert.
David M. Karr
Befindet sich dies ~/.ssh/configauf dem MacOS-Client oder dem Linux-Server? Ich habe diese Dateien auch nicht. Ich habe eine ähnliche/etc/ssh/sshd_config
Max Coplan
12

Ubuntu unter Windows 10 starten lassen ssh -X , um eine GUI-Umgebung auf einem Remote-Server zu erhalten

  • Zuerst

Installieren Sie alle folgenden. Installieren Sie unter Windows Xming. Unter Ubuntu Bash sudo apt installzum Installieren verwenden ssh xauth xorg.

sudo apt install ssh xauth xorg
  • Zweite

Gehe in den Ordner mit der ssh_configDatei, meine ist /etc/ssh.

  • Dritte

ssh_configAls Administrator bearbeiten (USE sudo). Innen ssh_config, entfernen Sie den Hash #in den Leitungen ForwardAgent, ForwardX11, ForwardX11Trusted, und , um die entsprechenden Argumente gesetzt yes.

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • Forth

In ssh_configDatei, entfernen Sie die Front Hash #vor Port 22und Protocol 2, und auch eine neue Zeile am Ende der Datei fügen Sie die xauth Speicherort der Datei angeben, XauthLocation /usr/bin/xautherinnern Sie Ihren eigenen Weg der xauth - Datei schreiben.

# /etc/ssh/ssh_config

#   IdentifyFile ...
    Port 22
    Protocol 2
#   Cipher 3des
#   ...
#   ...
    ...
    ...
    GSSAPIDelegateCredentials no
    XauthLocation /usr/bin/xauth
  • Fünfte

ssh_configNachdem wir die Bearbeitung der Datei abgeschlossen haben, speichern Sie sie, wenn Sie den Editor verlassen. Gehen Sie nun in den Ordner ~oder $HOMEhängen Sie ihn export DISPLAY=localhost:0an Ihre .bashrcDatei an und speichern Sie ihn.

# ~/.bashrc
...
...
export DISPLAY=localhost:0
  • Zuletzt

Wir sind fast fertig. Starten Sie Ihre Bash-Shell neu, öffnen Sie Ihr XmingProgramm und verwenden Sie ssh -X yourusername@yourhost. Dann genießen Sie die GUI-Umgebung.

ssh -X yourusername@yourhost

Das Problem liegt auch im Ubuntu-Subsystem unter Windows, und der Link ist bei

https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776

Hinweis: Der verknüpfte Text enthält 2 Tippfehler ( XauthLocaionanstelle von XauthLocation).

DestinyOne
quelle
Die Frage betrifft nicht Windows.
Kasperd
Unter MacOS ist es fast dasselbe, die Unterschiede sind stattdessen Xming, sollten wir bekommen XQuartz, und die ssh_configDatei befindet sich an einem anderen Ort, meiner ist /private/etc/ssh.
DestinyOne
Und auch die letzte Zeile für ssh_configwird sein:XAuthLocation /opt/X11/bin/xauth
DestinyOne
2
Bearbeitung erforderlich: XauthLocaion-> XauthLocation(diese Bearbeitung ist zu klein für mich).
Echristopherson
1
Neben der Installation xming, ssh, xauth, und xorg(Schritt 1), das einzige , was für mich brauchte , warexport DISPLAY=localhost:0
Eponymous
11

Wie bereits erwähnt, scheint xauthYosemite unter OS X auf eine alte Version zurückgegangen zu sein, die mit den $DISPLAYEinstellungen von XQuartz nicht funktioniert :

% xauth -V
1.0.9
% xauth generate $DISPLAY .
xauth: (argv):1:  bad display name "/private/tmp/com.apple.launchd(...)/org.macosforge.xquartz:0" in "add" command
Gast
quelle
1
Ich habe die gleichen Zeilen unter OS X 10.11 getestet und bekomme keinen Fehler. Immer noch dieselbe Version von XQuartz.
Sorin
1
@guest Ihr xauth generate $DISPLAY .Befehl funktionierte auf meinem Mac OS X High Sierra (10.13) und löste meine No xauth data; using fake authentication data for X11 forwarding.Pb.
SebMa
2

Es gibt momentan einen Fehler in MacOS. Ich bin auch darauf gestoßen. Das Update für mich beinhaltete das Hinzufügen des Folgenden zu meinem Bash-Profil

dispdir=`dirname $DISPLAY`
dispfile=`basename $DISPLAY`
dispnew="$dispdir/:0"
if [ -e $DISPLAY -a "$dispfile" = "org.x:0" ]; then
  mv $DISPLAY $dispnew
fi
export DISPLAY=$dispnew

Im Wesentlichen kann der Name für die Dateipipe, die Ihrem X-Stammverzeichnis zugeordnet ist, nicht korrekt verarbeitet werden und muss daher korrigiert werden. :-)

Red Tux
quelle
Ich bezweifle, dass dies den Fehler in GUI OS X-Apps wie SourceTree beheben würde.
Sorin
Bestätigen, dass es in Sierra für die Ausführung von Emacs mit X funktioniert - da der Mac der Server ist. Dies sollte allgemein funktionieren, wenn sich der Client auf einem Remotecomputer befindet
Mark Mullin,
2

Einschließlich

XAuthLocation / opt / local / bin / xauth in ~ / .ssh / config

in meinem macOS hat Sierra 10.12.6 für mich funktioniert. Eine kleine Änderung von Antwort 7).

Kepler Oliveira Filho
quelle
1

Ich habe gerade ~ / .Xauthority (Zielcomputer) aus meinem Stammordner und ssh -X 192.168.123.1 wieder entfernt und ich habe gearbeitet.

Marcel Kraan
quelle
Ich kann bestätigen, dass dies eine Antwort auf Mac OS Sierra 10.12.4 ist. Das Entfernen von ~ / .Xauthority auf dem SSH-Server macht den Trick: ~$ mv ~/.Xauthority ~/.Xauthority.bak Ein neues Magic Cookie wurde automatisch wieder in ~ / .Xauthority abgelegt, sobald ich mich wieder angemeldet habe. Es ist überhaupt kein Bash-Scripting erforderlich.
Kenneth Pegasus
1

In meinem Fall war es das Problem der .Xauthority Magic Cookie enthält nicht weitergeleitet, Fabby auf http://askubuntu.com/questions/571116/ auf 2014.11.14 empfiehlt diese Zeile am Ende des .bashrc hinzuzufügen , oder . Profil zum Weiterleiten von xauth-Schlüsseln zwischen Benutzern beim Aufrufen von su:

export $(dbus-launch)

Ich habe auch vorher hinzugefügt:

export XAUTHORITY=~/.Xauthority 

um sicherzustellen, dass remote mit ssh -X aufgerufen wird, wird @ es finden.

In meinem Fall ist .Xauthority ein Symlink zum ursprünglichen Benutzer /home//.Xauthority, von dem ich schreibe ...

  cd /home/<child_user>;ln -sf /home/<parent_user>/.Xauthority .xAuthority

mit richtigen Rechten:

  sudo chown <parent_user> /home/<parent_user>/.profile
  chmod a+rw /home/<parent_user>/.profile 

so ist es zugänglich für und für. wird in der Lage sein, Apps auf seinem lokalen Bildschirm auszulösen und X-Window-Ergebnisse im gesamten Proxy-Konto anzuzeigen!

TIPP: Überprüfen Sie die XAUTH-Liste ..., wenn Magic Cookie aktiviert ist.

all-informatisch
quelle
0

Ich würde dies als Kommentar hinzufügen, aber ich habe nicht genug Repräsentanten. Das Hinzufügen einer weiteren Zeile zu Sorins Lösung hat bei mir funktioniert.

Öffnen Sie Ihre ssh-Konfigurationsdatei mit vim ~/.ssh/config Dann fügen Sie diese Zeilen hinzu:

Host *
    ForwardAgent yes
    ForwardX11 yes
    XAuthLocation /opt/X11/bin/xauth

Sie können Ihren xauthStandort überprüfen mit:

which xauth
ssanch
quelle
Ich bin mir nicht sicher, ob dies wirklich funktionieren würde, da der xauth-Speicherort auf jedem Remotecomputer unterschiedlich ist. Deiner sieht aus wie ein MacOS, aber Linux hat ihn an einem anderen Ort. Ich habe größtenteils damit begonnen, ForwardX11 komplett zu deaktivieren, weil ich es so gut wie nie benutzt habe.
Sorin