Encontrei a causa, meu ~/.ssh/config
estava incompleto, você precisa de ambos:
Host *
ForwardAgent yes
ForwardX11 yes
Meu erro foi que incluí apenas a opção ForwardX11.
Toda vez que eu inicio uma conexão ssh do meu Mac para um Linux (Debian) eu recebo este aviso:
No xauth data; using fake authentication data for X11 forwarding.
Isso também acontece com ferramentas que usam ssh, como git ou mercurial.
Eu só quero fazer uma alteração local no meu sistema para evitar que isso apareça.
Nota: Eu tenho servidor X11 (XQuartz 2.7.3 (xorg-server 1.12.4)) no meu Mac OS X (10.8.1) e está funcionando corretamente, eu posso começar com sucesso o relógio local ou remotamente. / p>
Nenhuma das soluções publicadas funcionou para mim. Meu sistema cliente (desktop) está executando o macOS 10.12.5 (Sierra). Eu adicionei -v
às opções para o comando ssh
e ele me disse,
debug1: No xauth program.
, o que significa que não tem um caminho correto para o programa xauth
. (Nesta versão do macOS, o caminho para xauth
é fora do padrão.) A solução foi adicionar essa linha a /etc/ssh/ssh_config
(pode ser /etc/ssh/config
em algumas configurações) ou em ~/.ssh/config
(se você não tiver admin direitos):
XAuthLocation /opt/X11/bin/xauth
Agora a mensagem de aviso desapareceu.
Como observado, parece que xauth
no OS X Yosemite regrediu para uma versão antiga que não funciona com a configuração $DISPLAY
do XQuartz:
% xauth -V
1.0.9
% xauth generate $DISPLAY .
xauth: (argv):1: bad display name "/private/tmp/com.apple.launchd(...)/org.macosforge.xquartz:0" in "add" command
ssh -X
para obter um ambiente GUI em um servidor remoto Instale todos os itens a seguir. Na janela, instale Xming
. No bash do Ubuntu, use sudo apt install
para instalar ssh xauth xorg
.
sudo apt install ssh xauth xorg
Ir para a pasta contém o arquivo ssh_config
, o meu é /etc/ssh
.
Edite ssh_config
como administrador (USE sudo
). Dentro de ssh_config
, remova o hash #
nas linhas ForwardAgent
, ForwardX11
, ForwardX11Trusted
e defina os argumentos correspondentes para yes
.
# /etc/ssh/ssh_config
Host *
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
No arquivo ssh_config
, remova o hash da frente #
antes de Port 22
e Protocol 2
e também anexe uma nova linha no final do arquivo para indicar a localização do arquivo xauth, XauthLocation /usr/bin/xauth
, lembre-se de gravar seu próprio caminho do arquivo xauth.
# /etc/ssh/ssh_config
# IdentifyFile ...
Port 22
Protocol 2
# Cipher 3des
# ...
# ...
...
...
GSSAPIDelegateCredentials no
XauthLocation /usr/bin/xauth
Agora, já que terminamos de editar o arquivo ssh_config
, salve-o quando sairmos do editor. Agora vá para a pasta ~
ou $HOME
, anexe export DISPLAY=localhost:0
ao seu arquivo .bashrc
e salve-o.
# ~/.bashrc
...
...
export DISPLAY=localhost:0
Estamos quase terminando. Reinicie seu shell bash, abra seu programa Xming
e use ssh -X yourusername@yourhost
. Então aproveite o ambiente GUI.
ssh -X yourusername@yourhost
O problema também está no subsistema Ubuntu no Windows, e o link está em
Observação: o texto vinculado inclui dois erros de digitação ( XauthLocaion
em vez de XauthLocation
)
Há um bug no MacOS no momento. Eu me deparei com isso também. A correção para mim envolveu adicionar o seguinte ao meu .bash_profile
dispdir='dirname $DISPLAY'
dispfile='basename $DISPLAY'
dispnew="$dispdir/:0"
if [ -e $DISPLAY -a "$dispfile" = "org.x:0" ]; then
mv $DISPLAY $dispnew
fi
export DISPLAY=$dispnew
Essencialmente, o nome do pipe de arquivo associado à raiz do X não pode ser manipulado corretamente e, portanto, precisa de correção. : -)
Incluindo
XAuthLocation / opt / local / bin / xauth em ~ / .ssh / config
no meu macOS, o Sierra 10.12.6 funcionou para mim. Uma pequena mudança na resposta 7).
eu apenas removi ~ / .Xauthority (máquina de destino) da pasta raiz e do ssh -X 192.168.123.1 novamente e o ik funcionou.
No meu caso, foi o problema de .Xauthority contendo o cookie Magic não encaminhado, Fabby no link recomenda em 2014-11-14 para adicionar esta linha no final do .bashrc ou. perfil para permitir o encaminhamento de chaves xauth entre usuários ao chamar su:
export $(dbus-launch)
Eu também adicionei anteriormente:
export XAUTHORITY=~/.Xauthority
para garantir que o controle remoto chamado com ssh -X ̍ @ o encontre.
No meu caso .Xauthority é um link simbólico para o usuário original /home//.Xauthority I su from ...
cd /home/<child_user>;ln -sf /home/<parent_user>/.Xauthority .xAuthority
com direitos corretos:
sudo chown <parent_user> /home/<parent_user>/.profile
chmod a+rw /home/<parent_user>/.profile
por isso é acessível para e para. será capaz de acionar aplicativos e exibir o resultado de X-window em sua tela local em toda a conta de proxy!
DICA: Verifique a lista xauth ... se reflete o magic cookie.