O que significa “Aviso: falha na configuração de encaminhamento do X11 não confiável: dados da chave xauth não gerados” ao fazer o ssh'ing com -X?

134

Quando uso ssh -Xno meu Mac (executando o OS X 10.6.7) para conectar-me à minha caixa do Ubuntu (11.04), recebo o seguinte aviso:

Aviso: falha na configuração do encaminhamento do X11 não confiável: dados da chave xauth não gerados Aviso: Não há dados xauth; usando dados de autenticação falsos para o encaminhamento do X11.

Existe algo que eu possa fazer para que esse aviso desapareça? Caso contrário, posso ignorá-lo com segurança?

O encaminhamento do X11 parece funcionar bem, embora eu veja esta mensagem:

Xlib: extensão "RANDR" ausente no visor "localhost: 10.0".

Isso está relacionado ao aviso? (Acho que não. Se não estiver, farei uma nova pergunta sobre isso.)

Daryl Spitzer
fonte
1
O programa xauth está instalado no servidor ubuntu?
Slubman
sudo apt-get install xauthdiz-me "xauth já é a versão mais recente"
Daryl Spitzer
Quando conectado ao servidor ubuntu, qual é a saída de 'what xauth'?
Slubman
Na verdade eu acho que você deve ler a seguinte explicação: mail-archive.com/[email protected]/msg17927.html ... você pode ignorar este aviso
slubman
2
ocasionalmente, isso pode ser causado por problemas com seu arquivo ~ / .Xauthority. Se você excluí-lo, ele será recriado na próxima vez que você tentar fazer login.
22612 Michael

Respostas:

145

Algum motivo pelo qual você não deseja usar o sinalizador -Y em vez do sinalizador -X?

Simplesmente, a diferença entre -X e -Y é que -Y permite o encaminhamento confiável do X11.

user5336
fonte
4
Não, eu não estava ciente da bandeira -Y quando escrevi a pergunta. Acredito que isso acabou sendo uma solução. Altere sua resposta para que não seja uma pergunta (e seria bom se você explicasse brevemente a diferença entre -Y e -C) e eu a aceitarei.
Daryl Spitzer
existe algum caso em que você não gostaria de usar -Y em vez de -X?
Galo
@Rooster para sistemas muito antigos, nos quais -Y não é suportado, eu diria
Petr
Dica para solução de problemas: Execute "ssh -vv ..." e procure a linha xauth e quaisquer mensagens de erro. Você pode tentar executar a linha xauth exibida diretamente. Para os meus, eu precisava que fosse algo como "xauth list: 0" (confiável) e não "xauth -f / tmp / ssh ... list: 0" (não confiável). Que -Y corrigiu e "ForwardX11Trusted yes" no host remoto / etc / ssh / ssh_config (ou ~ / .ssh / config) também corrigiu.
Curtis Yallop
Essa solução também funcionou com o Cygwin / X.
Linux64kb
25

Se você virá aqui em 2015: mesmo se tudo estiver configurado corretamente, isso também pode acontecer no Mac OS X 10.10 Yosemite, ao usar ssh -Xe executar uma versão do XQuartz <= 2.7.7. A causa raiz é que os soquetes de exibição do X11 são gravados fora do caminho de pesquisa do xauth: edição # 2068 no rastreador do XQuartz.

Edit: Desde então, um XQuartz fixo foi lançado na nova página inicial, xquartz.org , e a instalação da versão mais recente a partir daí (atualmente 2.7.9) solucionará o problema.

Will Angley
fonte
1
Obrigado! Eu não fazia ideia de que o XQuartz que acabei de baixar da parte superior da página do XQuartz não é realmente a versão mais recente.
craigds 7/08/2015
Vale a pena notar que brew install xquartzatualmente instala a versão desatualizada 2.7.7.
Martin Cleaver
brew install Caskroom/cask/xquartzdeve obter o XQuartz mais recente com o HomeBrew
Nick
Ou mais curto brew cask install xquartz.
Franklin Yu
17

Se você receber a mesma mensagem mesmo quando estiver usando -Y, o xauthprograma poderá estar ausente no servidor. Em sistemas semelhantes ao Debian, você precisa do xauthpacote. Nos sistemas do tipo RedHat, você precisa do xorg-x11-xauthpacote.

Flup
fonte
15

"Não confiável" neste contexto significa que você não confia na conexão. O SSH usará medidas de segurança adicionais para tentar tornar o encaminhamento do X11 mais seguro. "Confiável" significa que você está totalmente confiante de que ninguém no host remoto terá acesso aos seus dados Xauth e os utilizará para monitorar, por exemplo, as teclas digitadas.

Essa terminologia realmente me confundiu por anos. Eu pensei que as conexões "confiáveis" eram mais seguras. Mas, na verdade, é uma opção que você deve usar em situações em que a conexão é confiável e deseja executar coisas sem que medidas de segurança extras atrapalhem. "Não confiável" é aquele que torna (um pouco) mais seguro lidar com um host remoto não confiável.

Uma conexão "Não confiável" tenta limitar o que um chapéu preto poderia fazer com você, ativando a extensão de segurança X11 e desativando outras extensões que você (esperançosamente) não precisa. Provavelmente é por isso que o RandR está desativado com -X. Você precisa ser capaz de girar sua tela X do host remoto?

Também é importante observar que o encaminhamento "não confiável" do X11 desliga após um certo período de tempo para impedir que você o deixe acidentalmente. Novas tentativas de abrir janelas simplesmente falharão depois disso. Isso me incomodou várias vezes antes de ler documentos suficientes para entender o que estava acontecendo.

tetsujin
fonte
9

Não tenho uma configuração que possa exibir esse comportamento, portanto, este é um tiro no escuro:

O aviso pode ser suprimida se você definir ForwardX11Trusteda "no"para os anfitriões que dão este aviso. Você pode colocar isso em um ~/.ssh/configou ou /etc/ssh/ssh_confige pode fazer a opção específica para um host específico, incluindo Host <hostname>na linha acima. o <hostname>componente corresponde ao que você digita na linha de comando (não o nome do host resolvido) e pode incluir caracteres curinga.

Michael Lowman
fonte
É possível usar o ssh -Yencaminhamento X11 confiável, mas como corrigir o não confiável?
Pavel Šimerda
Eu obtive o mesmo erro no Redhat e agora sou capaz de resolvê-lo editando o arquivo de configuração /etc/ssh/ssh_configno lado do cliente. Obrigado
Gangadhar Jannu
7

CUIDADO (cansado de ler respostas incompletas que levam a falhas de segurança)

1 / using ssh -Y significa que aqui temos informações falsas do xauth que são ruins!

2 / ssh -X deve funcionar, pois o XQuartz, uma vez ativado, usa o xauth. O único problema é que o ssh está procurando pelo xauth em / usr / X11R6 / bin e nos macos com o XQuartz está em / opt / X11 / bin

Solução segura:

1 / Habilite a primeira opção na guia Segurança das preferências (Cmd-), que permite conexões autenticadas

2 / adicionar

XAuthLocation /opt/X11/bin/xauth

em $ HOME / .ssh / config

3 / ssh -X you_servertrabalha de forma segura

Koko
fonte
6

Se a instalação xauthnão funcionar corretamente, um caso particularmente irritante pode ser um .Xauthorityarquivo corrompido . Esse caso específico permitiu que alguns clientes X trabalhassem, mas não outros com uma tendência maior a falhar com telas mais recentes. Remover e recriar o .Xauthorityarquivo pode resolver esse problema.

hildred
fonte
6

Descartar problemas do lado do servidor

Primeiro, você deve excluir qualquer problema do lado do servidor. Você consegue ssh -Xde qualquer outro host com êxito? Funciona ssh -Yenquanto ssh -Xnão? Em qualquer um dos casos, suponha que o ssh + X11 esteja configurado corretamente no servidor e vá para a próxima seção.

Se você não estiver em condições de verificar isso (você tem apenas um laptop executando o X11, por exemplo), poderá sshdo servidor para ele mesmo usando uma sessão falsa:

  1. export DISPLAY=:44# (Shell Bourne) ou
    setenv DISPLAY :44# (csh / tcsh)
  2. xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234 # Cookie Bogus apenas para este teste
  3. ssh -X localhost env |grep DISPLAY

Resultado esperado: deve haver uma variável DISPLAY configurada no final remoto da sessão ssh-to-self. Se você não obtiver resultado, é provável que seu servidor esteja configurado incorretamente (por exemplo, as bibliotecas X11 e / ou o xauthcomando pode estar ausente; ou a configuração sshd pode ser definida para negar acesso ao X11)

No Mac: verifique se o Xquartz está atualizado

De acordo com a resposta de Will Angley

Examine a ssh -vv -Xsaída

A mensagem de erro que você cita é um sintoma que pode ter muitas causas. Tente novamente com , o que deve fornecer pistas adicionais sobre o motivo da falha na instalação do túnel X11.ssh -X -vv remotehost

Você vê a seguinte mensagem aparecendo?

debug1: nenhum programa xauth.
Se então,

  1. Anote onde no sistema do cliente, o xauthcomando reside:
    qual xauth
  2. Adicione o seguinte no final do seu ~ / .ssh / config (e adicione um comentário para se lembrar de mantê-lo no futuro):
    Hospedeiro *
        Localização do XAuth / opt / X11 / bin / xauth
    
    Ajuste esse caminho de acordo com as descobertas da etapa 1 - Créditos a Jan-Willem Arnold
DomQ
fonte
3

Como já foi explicado acima, o seguinte funcionou para mim:

Edite ~ / .ssh / config para adicionar as linhas

Host *
    XAuthLocation /opt/X11/bin/xauth

e agora o nome do host ssh -X funciona (XQuartz 2.7.11, macOS 10.4 Mojave)

pastor
fonte
0

Eu já tinha o último XQuartz 2.7.11 instalado, mas acho que também atualizei o sistema operacional algumas vezes desde então. Reinstalei o XQuartz 2.7.11 e agora está funcionando bem.

Ulmo
fonte
-3

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

Marc Williams
fonte
1
Eu não entendo ... #
6286 Pierre.Vriens 11/06