Quando uso ssh -X
no meu Mac (executando o OS X 10.6.7) para me conectar à minha caixa Ubuntu (11.04), recebo o seguinte aviso:
Aviso: falha na configuração de encaminhamento X11 não confiável: dados de chave xauth não gerados Aviso: Sem dados xauth; usando dados de autenticação falsos para encaminhamento X11.
Existe algo que eu possa fazer para que esse aviso desapareça? Se não, posso ignorá-lo com segurança?
O encaminhamento X11 parece funcionar bem, embora eu veja esta mensagem:
Xlib: extensão "RANDR" ausente na tela "localhost:10.0".
Isso está relacionado ao aviso? (Acho que não. Se não for, farei uma nova pergunta sobre isso.)
Tente ssh -Y
Algum motivo para você não querer usar o
-Y
sinalizador em vez do-X
sinalizador?Muito simplesmente, a diferença entre
-X
e-Y
é que-Y
permite o encaminhamento confiável do X11.CUIDADO (cansado de ler respostas incompletas que levam a falha de segurança)
usar ssh -Y significa aqui ter informações falsas de xauth, o que é ruim!
ssh -X deve funcionar, pois o XQuartz, uma vez habilitado, usa xauth. O único problema é que o ssh está procurando xauth em /usr/X11R6/bin e em macos com XQuartz está em /opt/X11/bin
Solução segura:
Habilite a primeira opção na guia Segurança das preferências (Cmd-,) que habilita conexões autenticadas
adicione o seguinte a
$HOME/.ssh/config
XAuthLocation /opt/X11/bin/xauth
ssh -X you_server
funciona de forma seguraSe você está vindo para cá em 2015: mesmo que todo o resto esteja configurado corretamente, isso também pode acontecer no Mac OS X 10.10 Yosemite, ao usar
ssh -X
e executar uma versão do XQuartz <= 2.7.7. A causa raiz é que os soquetes de exibição X11 são gravados fora do caminho de pesquisa xauth: problema #2068 no rastreador XQuartz.Edit: Um XQuartz corrigido já foi lançado na nova página inicial, xquartz.org , e instalar a versão mais recente de lá (atualmente 2.7.9) resolverá o problema.
Se você receber a mesma mensagem mesmo usando
-Y
, oxauth
programa pode estar faltando no servidor. Em sistemas do tipo Debian, você precisa doxauth
pacote. Em sistemas do tipo RedHat, você precisa doxorg-x11-xauth
pacote."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 usará para monitorar suas teclas, por exemplo.
Esta terminologia realmente me confundiu por anos. Achei 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 você deseja executar coisas sem que medidas de segurança extras atrapalhem seu caminho. "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 black hat pode fazer com você, acionando a extensão de segurança X11 e desabilitando outras extensões que você (espero) não precisa. Provavelmente é por isso que RandR está desabilitado com -X. Você precisa ser capaz de girar sua tela X do host remoto?
Também é importante observar que o encaminhamento X11 "não confiável" é desativado após um certo período de tempo para evitar que você o deixe acidentalmente ativado. Novas tentativas de abrir janelas falharão depois disso. Isso me mordeu várias vezes antes de eu ler documentos suficientes para entender o que estava acontecendo.
Descartar problemas do lado do servidor
Primeiro, você deve descartar quaisquer problemas do lado do servidor. Você é capaz
ssh -X
de qualquer outro host com sucesso? Funcionassh -Y
enquantossh -X
não funciona? Em ambos os casos, suponha que ssh + X11 esteja configurado corretamente em seu servidor e passe 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, digamos), você pode
ssh
do servidor para si mesmo usando uma sessão falsa:export DISPLAY=:44
# (shell Bourne) ousetenv DISPLAY :44
# (csh / tcsh)xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234
# Biscoito falso apenas para este testessh -X localhost env |grep DISPLAY
Resultado esperado: deve haver uma variável DISPLAY definida na extremidade remota da sessão ssh-to-self. Se você não obtiver nenhum resultado, seu servidor provavelmente está configurado incorretamente (por exemplo, as bibliotecas X11 e/ou o
xauth
comando podem estar ausentes; 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
Examinar
ssh -vv -X
saídaA mensagem de erro que você cita é um sintoma que pode ter várias causas. Tente novamente com , o que deve fornecer pistas adicionais sobre por que a configuração do túnel X11 falhou.
ssh -X -vv remotehost
Você vê a seguinte mensagem aparecendo?
Se for assim,xauth
comando reside:Eu não tenho uma configuração que possa exibir esse comportamento, então isso é um tiro no escuro:
O aviso pode ser suprimido se você definir
ForwardX11Trusted
para"no"
hosts que emitem esse aviso. Você pode colocar isso em~/.ssh/config
ou/etc/ssh/ssh_config
, e você pode tornar a opção específica para um host específico incluindoHost <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 curingas.Se a instalação
xauth
não funcionar corretamente, um caso particularmente irritante pode ser um.Xauthority
arquivo corrompido. Este caso em particular permitiu que alguns clientes X funcionassem, mas não outros com maior tendência a falhar com telas mais recentes. Remover e recriar o.Xauthority
arquivo pode resolver esse problema.Como já foi explicado acima, o seguinte funcionou para mim:
Edite ~/.ssh/config para adicionar as linhas
e agora ssh -X hostname funciona (XQuartz 2.7.11, macOS 10.4 Mojave)
Usando o XQuartz 2.7.11 no MacOS Catalina, tive que atualizar meu arquivo /etc/ssh/ssh_config e adicionar
XAuthLocation /opt/X11/bin/xauth
depoisHost *
para ssh -X funcionar