Como posso evitar o aviso Sem dados xauth; usando dados de autenticação falsos para o encaminhamento X11?


66

Toda vez que inicio uma conexão ssh do meu Mac para um Linux (Debian), recebo este aviso:

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

Isso também acontece para ferramentas que estão usando ssh, como git ou mercurial.

Eu só quero fazer uma alteração local no meu sistema para impedir que isso apareça.

Nota: Eu tenho o servidor X11 (XQuartz 2.7.3 (xorg-server 1.12.4)) no meu Mac OS X (10.8.1) e está funcionando corretamente, posso iniciar o relógio com êxito local ou remotamente.


11
Qual comando você está usando para o ssh?
DerfK 30/08/12

@ DerfK apenas, ssh hostnamemas no meu ~/.ssh/configeu adicionei ForwardX11 yeshá algum tempo. Ainda isso é algo que eu quero ter lá.
30512

Usando o Ubuntu 16.04 LTS (agosto de 2017), desisto. Bottom line é que, embora dê o erro, ele funciona. Eu uso ssh -Y hostnameno Linux e ssh -x hostnameao usar o OpenSSH no Windows.
SDSolar 31/08/19

Respostas:


66

Nenhuma das soluções postadas funcionou para mim. Meu sistema cliente (desktop) está executando o macOS 10.12.5 (Sierra). Eu adicionei -vàs opções do sshcomando e ele me disse:

debug1: No xauth program.

o que significa que não possui um caminho correto para o xauthprograma. (Nesta versão do macOS, o caminho para xauthnão é padrão.) A solução foi adicionar esta linha a /etc/ssh/ssh_config(pode estar /etc/ssh/configem algumas configurações) ou em ~/.ssh/config(se você não tiver direitos de administrador):

XAuthLocation /opt/X11/bin/xauth

Agora a mensagem de aviso se foi.


10
AMD. Anos venho tentando encontrar uma solução, e isso funcionou. Anos eu digo! Observe que eu fiz isso adicionando essa linha na Host *entrada do meu ~/.ssh/configarquivo, em vez de editá-la /etc/ssh/ssh_config. A única documentação que encontrei para isso estava em man sshd_config.
22617 Demitri

Isso funcionou para mim também. Entendo que, no momento, o XQuartz não está sendo bem mantido devido à falta de financiamento. Então, eu acho que portar questões como essa é realmente menor do que eu esperaria.
23417 AlanObject

Na Serra Alta; este é o que funcionou para mim também.
mklein9

11
Observe que você pode enfrentar esse problema mesmo quando seu shell pode encontrar o xauth no seu PATH! Eu acho que o cliente ssh está limpando seu PATH por razões de segurança?
MarcHard

11
Esta solução não funcionou para mim. Estou usando o Cygwin no Win7. A adição de "XAuthLocation / usr / bin / xauth", na entrada "Host *" ou antes dessa linha, em ~ / .ssh / config, não fez diferença.
David M. Karr

22

Encontrou a causa, meu ~/.ssh/configestava incompleto, você precisa de ambos:

Host *
    ForwardAgent yes
    ForwardX11 yes

Meu erro foi incluir apenas a opção ForwardX11.


12
Não sei por que isso é necessário / relevante. ForwardAgenté usado para permitir que as chaves armazenadas em cache ssh-agentpassem por várias conexões SSH aninhadas. Não deve ter nenhuma relevância para o X11. E fwiw, de acordo com alguns, não é uma boa ideia em termos de segurança: heipei.github.io/2015/02/26/…
underscore_d

2
Isso não parece certo, o que ajuda é realmente desativar o encaminhamento do X11 ou corrigir a configuração do xauth para configurá-lo. Não está relacionado aos agentes ssh.
Eckes

Esta solução não funcionou para mim.
David M. Karr

Isso está ~/.ssh/configno cliente macOS ou no servidor Linux? Eu tenho esses arquivos em nenhum dos dois. Eu tenho um semelhante/etc/ssh/sshd_config
Max Coplan

12

Deixando o Ubuntu bash no Windows 10 executar ssh -X para obter um ambiente de GUI em um servidor remoto

  • Primeiro

Instale todos os seguintes. Na janela, instale Xming. No Ubuntu bash, use sudo apt installpara instalar ssh xauth xorg.

sudo apt install ssh xauth xorg
  • Segundo

Vá para a pasta contém o ssh_configarquivo, o meu é /etc/ssh.

  • Terceiro

Edite ssh_configcomo administrador (USE sudo). Dentro ssh_config, remover o hash #nas linhas ForwardAgent, ForwardX11, ForwardX11Trusted, e definir os argumentos correspondentes a yes.

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • Adiante

No ssh_configarquivo, remover o hash frente #antes Port 22e Protocol 2, além de acrescentar uma nova linha no final do arquivo para indicar o local do arquivo xauth, XauthLocation /usr/bin/xauth, lembre-se escrever o seu próprio caminho de arquivo xauth.

# /etc/ssh/ssh_config

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

Agora que terminamos de editar o ssh_configarquivo, salve-o quando sairmos do editor. Agora vá para a pasta ~ou $HOME, acrescente export DISPLAY=localhost:0ao seu .bashrcarquivo e salve-o.

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

Estamos quase terminando. Reinicie seu shell bash, abra seu Xmingprograma e use ssh -X yourusername@yourhost. Então aproveite o ambiente da GUI.

ssh -X yourusername@yourhost

O problema também está no subsistema Ubuntu no Windows e o link está em

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

Nota: o texto vinculado inclui 2 erros de digitação (em XauthLocaionvez de XauthLocation)


A questão não é sobre o Windows.
precisa saber é o seguinte

No MacOS, é quase a mesma, as diferenças são, em vez de Xming, devemos obter XQuartz, e o ssh_configarquivo está em um local diferente, o meu é /private/etc/ssh.
precisa saber é o seguinte

E também, a última linha para ssh_configserá:XAuthLocation /opt/X11/bin/xauth
DestinyOne

2
É necessário editar: XauthLocaion-> XauthLocation(essa edição é muito pequena para eu fazer).
Echristopherson 3/0318

11
Além de instalar xming, ssh, xauth, e xorg(passo 1), a única coisa necessária para mim foiexport DISPLAY=localhost:0
epónimo

11

Como observado, parece que xauthno OS X o Yosemite voltou para uma versão antiga que não funciona com a $DISPLAYconfiguração do 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

11
Testei as mesmas linhas no OS X 10.11 e não recebo nenhum erro. Ainda a mesma versão do XQuartz.
sorin

11
@guest Seu xauth generate $DISPLAY .comando funcionou no meu Mac OS X High Sierra (10.13) e resolveu meu No xauth data; using fake authentication data for X11 forwarding.pb.
SebMa

2

Há um bug no MacOS no momento. Eu me deparei com isso também. A correção para mim envolveu adicionar o seguinte ao meu .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

Essencialmente, o nome do canal de arquivos associado à sua raiz X não pode ser tratado corretamente e, portanto, precisa de correção. :-)


Duvido que isso resolva o erro em aplicativos da GUI OS X, como o SourceTree.
sorin

Confirmando que ele funciona no Sierra para executar o emacs usando o X - como o Mac é o servidor. isso deve funcionar amplamente nos casos em que o cliente está em uma máquina remota
Mark Mullin

2

Incluindo

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

no meu macOS Sierra 10.12.6 funcionou para mim. Uma pequena mudança da resposta 7).


1

Acabei de remover ~ / .Xauthority (máquina de destino) da minha pasta raiz e ssh -X 192.168.123.1 novamente e o ik funcionou.


Posso confirmar que esta é uma resposta no Mac OS Sierra 10.12.4. A remoção de ~ / .Xauthority no servidor SSH faz o truque: ~$ mv ~/.Xauthority ~/.Xauthority.bak um novo cookie mágico foi automaticamente colocado novamente em ~ / .Xauthority quando eu fazia o login novamente. Nenhum script do Bash é necessário.
Kenneth Pegasus

1

No meu caso, foi o problema de .Xauthority contendo o cookie Magic não encaminhado, Fabby em http://askubuntu.com/questions/571116/ recomenda em 14/11/2014 - adicionar esta linha no final do arquivo .bashrc ou . perfil para permitir o encaminhamento de chaves xauth entre usuários ao chamar su:

export $(dbus-launch)

Eu adicionei também anteriormente:

export XAUTHORITY=~/.Xauthority 

para garantir que o controle remoto chamado com ssh -X ̍ @ o encontre.

No meu caso .Xauthority é um link simbólico para o usuário original /home//.Xauthority que su de ...

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

com direitos corretos:

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

portanto, é acessível para e para. poderá acionar aplicativos e exibir o resultado da janela X na tela local em toda a conta proxy!

DICA: verifique a lista xauth ... se reflete o cookie mágico.


0

Eu adicionaria isso como um comentário, mas não tenho representante suficiente. Adicionar mais uma linha à solução de sorin funcionou para mim.

Abra seu arquivo de configuração ssh com vim ~/.ssh/config Em seguida, adicione estas linhas a ele:

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

Você pode verificar sua xauthlocalização com:

which xauth

Não tenho certeza se isso realmente funcionaria porque o local xauth seria diferente em cada máquina remota. O seu parece um MacOS, mas o Linux possui um local diferente. Comecei principalmente a desativar o ForwardX11 completamente porque quase nunca o uso.
sorin 23/02
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.