Eu tenho um portal para ssh da rede mundial de computadores ruim. Não tem problema, eu recebo:
remote ~$ ssh -X ingo@gateway
Debian GNU/Linux 10 (buster)
0:ingo@gateway ~$
Agora eu gerencio meus outros hosts, por exemplo o servidor de arquivos:
0:ingo@gateway ~$ ssh -X ingo@fileserver
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Debian GNU/Linux 10 (buster)
0:ingo@fileserver~$
Eu recebo esse aviso.
Mas se eu fizer ssh do meu host de gerenciamento na rede local diretamente no servidor de arquivos, ele funcionará sem o aviso. Eu verifiquei isso com outros logins. Eu só recebo o aviso quando ssh vem de um ssh.
Por que eu recebo
Aviso: falha na configuração de encaminhamento X11 não confiável: dados da chave xauth não gerados
apenas em logins ssh aninhados?
Como posso evitar esse aviso e usar com êxito o encaminhamento X11 não confiável e mais seguro?
E não, não quero usar a -Y
opção menos segura no ssh para encaminhamento confiável do X11 em vez da -X
opção usada.
Responder1
Quando sua única conexão com um servidor X11 énão confiável, você não poderá encaminhá-lo ainda mais.
O encaminhamento X11 não confiável funciona pelo cliente ssh conectando-se ao display local e usando o xauth generate $DISPLAY . untrusted
comando para gerar umnão confiávelchave/cookie.
Mas para isso o xauth
comando precisa que a SECURITY
extensão esteja presente no display, que, como a maioria das extensões, fica oculta e/ou desabilitada quando um cliente como xauth
foi autenticado com um cookie não confiável.
Você pode verificar isso facilmente com:
$ touch /tmp/junk1 /tmp/junk2
$ chmod 600 /tmp/junk*
$ xauth -f /tmp/junk1 generate :0 . untrusted
$ XAUTHORITY=/tmp/junk1 oclock
# get a square oclock because the Shape extension is disabled
$ XAUTHORITY=/tmp/junk1 xdpyinfo | grep -A2 extensions
number of extensions: 2
BIG-REQUESTS
XC-MISC
# vs 28 or so on a trusted display
$ XAUTHORITY=/tmp/junk1 xauth -f /tmp/junk2 generate :0 . untrusted
xauth: (argv):1: couldn't query Security extension on display ":0"
A última etapa causará o aviso que você receberá no ssh.
Portanto, pelo menos o primeiro encaminhamento do X11 deve ser confiável, caso contrário não funcionaria.
Alternativamente, você deve "pular" pelo host intermediário, que fará um único encaminhamento X11:
ssh -X -o ForwardX11Trusted=no -J ingo@gateway ingo@fileserver
Observe que explicit ForwardX11Trusted=no
, porque no Debian as opções -X
e -Y
são equivalentes e você obterá umconfiávelEncaminhamento X11 por padrão, não importa qual você esteja usando.