Esclarecimento rápido: tenho o X-server 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 gvim
a partir do WSL local e também posso iniciar gvim
quando estou em uma sessão SSH.
O WSL é bom para se comunicar com os servidores remotos e consegui fazer o encaminhamento X funcionar. No entanto, continuo recebendo o seguinte texto extra quando executo o ssh -X user@machine_ip
comando. Eu me pergunto se isso significa que todas as minhas sessões de GUI são inseguras? Eu posso viver com tal mensagem se ela não indicar muita 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 .
vou receber 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.
- Conteúdo do
~/.Xauthority
arquivo, - Adicionado o seguinte a
/etc/ssh/config
:
ForwardAgent no
ForwardX11 no
ForwardX11Trusted yes
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
XauthLocation /usr/bin/xauth
- Adicionado o seguinte a
~/.ssh/config
:
Host *
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
Protocol 2
GSSAPIDelegateCredentials no
XAuthLocation /usr/bin/xauth
Por fim, continuo recebendo a seguinte "conversa" com xauth
o programa em todas as máquinas Windows com erros que executam o 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 para xauth
, add
parece ser um comando válido de alguma forma.
Eu tentei três distribuições WSL e todas 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 o xauth
comando para gerar alguns "dados xauth" adequados.
Você tem que instalar um servidor X como o Xming para que funcione porque o Windows não possui servidor X.
O ssh está apenas encaminhando as solicitações do X Server da máquina remota para o seu 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
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
então você pode usar xauth como normal
você também pode desativá-lo usando
xauth +
Você também deve usar o sinalizador do ssh
-Y
se quiser usar o encaminhamento do X.se você instalou o xming e não está funcionando, certifique-se de que a variável DISPLAY esteja definida. essa variável deve ser definida apenas no WSL e você pode usar xauth.
De acordo com a postagem e sua resposta, tudo está funcionando bem, 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 que podem beneficiar qualquer invasor remoto, então não vejo por que não é seguro simplesmente ignorar o aviso "Sem dados xauth".
O 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 seguramente considerar a mensagem de erro como proveniente de um recurso mal implementado ou não implementado e simplesmente ignorá-lo.
Pode ou não ser relevante para a sua situação, mas eu estava tendo problemas com o comando xauth porque:
Pelo que vale a pena, contornei esse problema definindo a variável de ambiente XAUTHORITY para algum caminho no sistema de arquivos wsl ext4.
Idem .ICEauthority e ICEAUTHORITY env var. (Mesmo que a página de manual do iceauth não mencione o ICEAUTHORITY env var, parece funcionar.)