Não é possível gerar arquivos xauth usando Ubuntu no WSL

Não é possível gerar arquivos xauth usando Ubuntu no WSL

Esclarecimento rápido: tenho o servidor X em execução na máquina Windows que hospeda a distribuição WSL Ubuntu. Posso iniciar programas GUI local e remotamente. Por exemplo, posso iniciar gvima partir do WSL local e também posso iniciar gvimquando estou em uma sessão SSH.


WSL é bom para comunicação com servidores remotos e consegui fazer o encaminhamento X funcionar. No entanto, continuo recebendo o seguintetexto extraquando executo ssh -X user@machine_ipo comando.Eu me pergunto se isso significa que todas as minhas sessões da GUI são inseguras.Posso conviver com essa mensagem se ela não indicar uma grande ameaça potencial.

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

Executei as seguintes etapas de instalação e configuração, mas falhei na última etapa:

mv ~/.Xauthority ~/old.Xauthority 
sudo apt install ssh xauth xorg -y
touch ~/.Xauthority
xauth generate $DISPLAY .

Receberei a seguinte mensagem de erro

xauth: (argv):1:  couldn't query Security extension on display "localhost:0.0"  

Tenho reproduzido o problema descrito em três máquinas Windows (dois laptops e um desktop), mas de alguma forma consegui me livrar da Warning: No xauth data;mensagem " " no quarto computador desktop. Em seguida, copiei o seguinte do quarto computador desktop para o restante das três máquinas, nada melhorou.

  1. Conteúdo do ~/.Xauthorityarquivo,
  2. Adicionado o seguinte a /etc/ssh/config:
    ForwardAgent no
    ForwardX11 no
    ForwardX11Trusted yes
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    XauthLocation /usr/bin/xauth
  1. Adicionado o seguinte a ~/.ssh/config:
Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
    Protocol 2
    GSSAPIDelegateCredentials no
    XAuthLocation /usr/bin/xauth

Por último, continuo recebendo a seguinte "conversa" com xautho programa em todas as máquinas Windows com bugs que executam WSL (Ubuntu 18.04 LTS).

User @ machine ➜  ~  xauth                                                   
Using authority file /home/llinfeng/.Xauthority 
xauth> generate $DISPLAY                                                                                  
xauth: (stdin):2:  unable to open display "$DISPLAY".                                                     
xauth> generate $DISPLAY .                                                                            
xauth: (stdin):3:  unable to open display "$DISPLAY".                                                     
xauth> add $DISPLAY .                                                                                     
xauth: (stdin):4:  bad "add" command line                                                                 
xauth>    

Ao verificar o manual xauth, addparece ser um comando válido de alguma forma.


Eu tentei três distribuições WSL e todas elas estão produzindo a mesma " No xauth data" mensagem de erro. As três distribuições da Microsoft Store incluem: Ubuntu, Ubuntu 18.04 LTS e Pengwin (Debian).


Por favor, informe como obter xautho comando para gerar alguns "dados xauth" adequados.

Responder1

De acordo com a postagem e sua resposta, tudo está funcionando corretamente, exceto esta mensagem de erro.

A mensagem parece dizer que "dados de autenticação falsos" são enviados para a sessão remota. Não vejo como usar esses dados pode beneficiar qualquer invasor remoto, então não vejo por que não é seguro simplesmente ignorar o aviso de "Sem dados xauth".

WSL não é uma implementação completa do Linux. Muitas chamadas de sistema e bibliotecas foram implementadas, mas muitas não.

Minha opinião pessoal: eu diria que você pode considerar com segurança a mensagem de erro como proveniente de um recurso mal implementado ou não implementado e simplesmente ignorá-lo.

Responder2

Você precisa instalar um servidor X como o Xming para que funcione porque o Windows não possui servidor X.

ssh está apenas encaminhando as solicitações do servidor X da máquina remota para a sua e, se você não o tiver, gerará um erro.

depois de instalar o Xming, digite o seguinte comando no shell WSL, não no ssh

export DISPLAY=:0

este comando deve ser executado toda vez que você abrir um novo terminal

Você também pode adicioná-lo a~/.bashrc

se não funcionar, instale o xterm também, ele instala todas as bibliotecas X. no Ubuntu

sudo apt update;sudo apt install xterm

então você pode usar o xauth normalmente

você também pode desativá-lo usandoxauth +

Você também deve usar o sinalizador ssh -Yse quiser usar o encaminhamento X.

ssh -Y user@host

se você instalou o xming e ele não está funcionando, certifique-se de que a variável DISPLAY esteja definida. esta variável deve ser definida apenas no WSL e você pode usar xauth.

export DISPLAY=:0

Responder3

Pode ou não ser relevante para a sua situação, mas estava tendo problemas com o comando xauth porque:

  • Eu estava montando um sistema de arquivos drvfs e usando-o como minha casa
  • drvfs não suporta links - links físicos ou links simbólicos
  • xauth tenta usar links

Pelo que vale a pena, resolvi esse problema definindo a variável de ambiente XAUTHORITY para algum caminho no sistema de arquivos wsl ext4.

Idem .ICEauthority e o env var ICEAUTHORITY. (Mesmo que a página de manual do iceauth não mencione o env var ICEAUTHORITY, parece funcionar.)

informação relacionada