Come posso evitare l'avviso Nessun dato xauth; utilizzando dati di autenticazione falsi per l'inoltro X11?


66

Ogni volta che avvio una connessione ssh dal mio Mac a un Linux (Debian) ricevo questo avviso:

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

Questo succede anche per strumenti che usano ssh, come git o mercurial.

Voglio solo apportare una modifica locale al mio sistema per evitare che ciò appaia.

Nota: ho un server X11 (XQuartz 2.7.3 (xorg-server 1.12.4)) sul mio Mac OS X (10.8.1) e funziona correttamente, posso avviare correttamente l'orologio localmente o da remoto.


1
Quale comando stai usando per ssh?
DerfK,

@DerfK solo ssh hostnamema nel mio l' ~/.ssh/configho aggiunto ForwardX11 yesqualche tempo fa. Comunque è qualcosa che voglio avere lì.
sorin,

Usando Ubuntu 16.04 LTS (agosto 2017) mi arrendo. La linea di fondo è che anche se dà l'errore, funziona. Uso ssh -Y hostnameda Linux e ssh -x hostnamequando utilizzo OpenSSH su Windows.
SDsolar,

Risposte:


66

Nessuna delle soluzioni pubblicate ha funzionato per me. Il mio sistema client (desktop) esegue macOS 10.12.5 (Sierra). Ho aggiunto -valle opzioni per il sshcomando e mi ha detto,

debug1: No xauth program.

il che significa che non ha un percorso corretto per il xauthprogramma. (In questa versione di macOS il percorso xauthè non standard.) La soluzione era aggiungere questa riga a /etc/ssh/ssh_config(potrebbe essere /etc/ssh/configin alcune configurazioni) o in ~/.ssh/config(se non si dispone dei diritti di amministratore):

XAuthLocation /opt/X11/bin/xauth

Ora il messaggio di avviso è sparito.


10
OH MIO DIO. Anni ho cercato di trovare una soluzione e questo ha funzionato. Anni che dico! Nota che l'ho fatto aggiungendo quella riga sotto la Host *voce nel mio ~/.ssh/configfile invece di modificarla /etc/ssh/ssh_config. L'unica documentazione che ho trovato per questo era in man sshd_config.
Demitri,

Questo ha funzionato anche per me. Comprendo che al momento XQuartz non è ben mantenuto a causa della mancanza di finanziamenti. Quindi penso che problemi di porting come questo siano in realtà meno di quanto mi aspetterei.
AlanObject

Sull'alta Sierra; questo è quello che ha funzionato anche per me.
mklein9,

1
Nota che potresti riscontrare questo problema anche quando la tua shell riesce a trovare xauth nel tuo PERCORSO! Immagino che il client SSH stia disinfettando il PERCORSO per motivi di sicurezza?
MarcH,

1
Questa soluzione non ha funzionato per me. Sto usando Cygwin su Win7. L'aggiunta di "XAuthLocation / usr / bin / xauth", sotto la voce "Host *", o prima di quella riga, in ~ / .ssh / config, non ha fatto alcuna differenza.
David M. Karr,

22

Trovato la causa, la mia ~/.ssh/configera incompleta, hai bisogno di entrambi:

Host *
    ForwardAgent yes
    ForwardX11 yes

Il mio errore è stato che ho incluso solo l'opzione ForwardX11.


12
Non sono sicuro del perché sia ​​necessario / rilevante. ForwardAgentviene utilizzato per consentire alle chiavi memorizzate nella cache ssh-agentdi passare attraverso più connessioni SSH nidificate. Non dovrebbe avere alcuna rilevanza per X11. E in seguito, secondo alcuni, non è una buona idea per quanto riguarda la sicurezza: heipei.github.io/2015/02/26/…
underscore_d

2
Non suona bene, ciò che aiuta è effettivamente disattivare l'inoltro X11 o correggere la configurazione di xauth per configurarlo. Non è correlato agli agenti ssh.
Verifica il

Questa soluzione non ha funzionato per me.
David M. Karr,

È presente ~/.ssh/configsul client macOS o sul server Linux? Non ho questi file su nessuno dei due. Ne ho uno simile/etc/ssh/sshd_config
Max Coplan l'

13

Lasciare Ubuntu bash su Windows 10 eseguito ssh -X per ottenere un ambiente GUI su un server remoto

  • Primo

Installa tutto quanto segue. Su Windows, installa Xming. Su Ubuntu bash, usa sudo apt installper installare ssh xauth xorg.

sudo apt install ssh xauth xorg
  • Secondo

Vai alla cartella contiene ssh_configfile, il mio è /etc/ssh.

  • Terzo

Modifica ssh_configcome amministratore (USA sudo). All'interno ssh_config, rimuovere l'hash #nelle linee ForwardAgent, ForwardX11, ForwardX11Trusted, e impostare i corrispondenti argomenti yes.

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • Via

Nel ssh_configfile, rimuovi l'hash anteriore #prima Port 22e Protocol 2, e aggiungi anche una nuova riga alla fine del file per indicare la posizione del file xauth XauthLocation /usr/bin/xauth, ricorda di scrivere il tuo percorso del file xauth.

# /etc/ssh/ssh_config

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

Ora che abbiamo finito di modificare il ssh_configfile, salvalo quando lasciamo l'editor. Ora vai alla cartella ~o $HOME, aggiungi export DISPLAY=localhost:0al tuo .bashrcfile e salvalo.

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

Abbiamo quasi finito. Riavvia la shell bash, apri il Xmingprogramma e usalo ssh -X yourusername@yourhost. Quindi goditi l'ambiente della GUI.

ssh -X yourusername@yourhost

Il problema si trova anche nel sottosistema Ubuntu su Windows e il collegamento è all'indirizzo

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

Nota: il testo collegato include 2 errori di battitura ( XauthLocaionanziché XauthLocation)


La domanda non riguarda Windows.
Kasperd,

Su MacOS è quasi lo stesso, le differenze sono invece di Xming, dovremmo ottenere XQuartz, e il ssh_configfile si trova in una posizione diversa, la mia è /private/etc/ssh.
DestinyOne,

E inoltre, l'ultima riga ssh_configsarà:XAuthLocation /opt/X11/bin/xauth
DestinyOne il

2
Modifica necessaria: XauthLocaion-> XauthLocation(quella modifica è troppo piccola per me).
ecristopherson

1
Inoltre l'installazione xming, ssh, xauth, e xorg(fase 1), l'unica cosa necessaria per me eraexport DISPLAY=localhost:0
Eponymous

11

Come notato, sembra che xauthsu OS X Yosemite sia regredito a una versione precedente che non funziona con le $DISPLAYimpostazioni di XQuartz :

% 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

1
Ho testato le stesse linee su OS X 10.11 e non ho riscontrato alcun errore. Sempre la stessa versione di XQuartz.
sorin

1
@guest Il tuo xauth generate $DISPLAY .comando ha funzionato sul mio Mac OS X High Sierra (10.13) e ha risolto il mio No xauth data; using fake authentication data for X11 forwarding.pb.
SebMa,

2

C'è un bug in MacOS al momento. Mi sono imbattuto anche in questo. La correzione per me ha comportato l'aggiunta di quanto segue al mio .bash_profile

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

In sostanza, il nome del file pipe associato alla tua radice X non può essere gestito correttamente, e quindi necessita di correzione. :-)


Dubito che ciò risolva l'errore nelle app GUI OS X, come SourceTree.
sorin

Confermando che funziona su Sierra per eseguire emacs usando X - poiché il Mac è il server. questo dovrebbe funzionare ampiamente nei casi in cui il client si trova su una macchina remota
Mark Mullin il

2

Compreso

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

nel mio macOS Sierra 10.12.6 ha funzionato per me. Un piccolo cambiamento dalla risposta 7).


1

ho appena rimosso ~ / .Xauthority (macchina di destinazione) dalla mia cartella principale e ssh -X 192.168.123.1 di nuovo e ik ha funzionato.


Posso confermare che questa è una risposta su Mac OS Sierra 10.12.4. Rimuovere ~ / .Xauthority sul server SSH fa il trucco: ~$ mv ~/.Xauthority ~/.Xauthority.bak un nuovo cookie magico è stato automaticamente reinserito in ~ / .Xauthority una volta effettuato nuovamente l'accesso. Non è richiesto alcun script Bash.
Kenneth Pegasus,

1

Nel mio caso è stato il problema di .Xauthority contenente il cookie Magic non inoltrato, Fabby su http://askubuntu.com/questions/571116/ raccomanda il 14-11-2014 di aggiungere questa riga alla fine di .bashrc o . profilo per consentire l'inoltro delle chiavi xauth tra gli utenti quando si chiama su:

export $(dbus-launch)

Ho aggiunto anche in precedenza:

export XAUTHORITY=~/.Xauthority 

per assicurarsi che il telecomando chiamato con ssh -X ̍ @ lo troverà.

Nel mio caso. Xauthority è un link simbolico all'utente originale /home//.Xauthority che ho su da ...

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

con diritti corretti:

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

quindi è accessibile da e verso. sarà in grado di attivare le app e visualizzare i risultati X-windowed sulla sua schermata locale attraverso l'account proxy!

SUGGERIMENTO: controlla l'elenco xauth ... se riflette il cookie magico.


0

Vorrei aggiungere questo come commento, ma non ho abbastanza rappresentante. L'aggiunta di un'altra riga alla soluzione di Sorin ha funzionato per me.

Apri il tuo file di configurazione ssh con vim ~/.ssh/config Quindi aggiungi queste righe:

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

Puoi ricontrollare la tua xauthposizione con:

which xauth

Non sono sicuro che funzionerebbe davvero perché la posizione di xauth sarebbe diversa su ogni macchina remota. Il tuo sembra un MacOS, ma Linux lo ha in una posizione diversa. Per lo più ho iniziato a disabilitare completamente ForwardX11 perché non lo uso quasi mai.
sorin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.