
Estou executando um servidor Ubuntu no VMWare. E eu gostaria de encaminhar o X11 do convidado Ubuntu para o host Mac.
Eu instalei XQuartz 2.7.9 (xorg-server 1.17.4)
no host Mac.
E o encaminhamento SSH no Ubuntu está habilitado.
Então tentei o seguinte no iTerm:
%> echo $DISPLAY
/private/tmp/com.apple.launchd.mjxVyILVrR/org.macosforge.xquartz:0
%> ssh -X root@xxxx
# echo $DISPLAY
# gnome-terminal
Unable to init server: Could not connect: Connection refused
Failed to parse arguments: Cannot open display
$DISPLAY está vazio e o encaminhamento X11 não está funcionando.
Alguma ideia?
Responder1
Tente ssh -Y root@xxxx
correrxterm
dentroXQuartz em vez de iTerm. Isso funciona?
Responder2
abra /etc/ssh/sshd_config no sistema remoto e defina X11Forwarding yes . Em seguida, reinicie o serviço ssh e tente novamente
Responder3
Corrija-me se eu estiver enganado. Você deseja acessar sua máquina executando o Ubuntu remotamente a partir do seu mac e quando você 'ssh' no seu Ubuntu e quando você tenta 'echo $DISPLAY' você recebe uma resposta vazia. Provavelmente a solução a seguir pode não funcionar no seu caso, mas tente se o que você estava tentando for semelhante ao que eu tentei.
Como você já descobriu, é necessário encontrar primeiro a variável DISPLAY.
Então, no seu Mac, se você digitar como um usuário normal
echo $DISPLAY
Então o que você obteria seria algo como o seguinte (é o caso em sua mão). De qualquer forma, todos vocês veriam algo semelhante em seus sistemas.
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
Então tente algo como
xeyes
E agora você sabe que sua tela está funcionando
Agora, se você quiser tentar o mesmo que o root (por favor, não me ataquem, eu sei que alguns de vocês são fortemente contra o acesso root), mas se não funcionar, no prompt do root, faça o seguinte
export DISPLAY=/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
O mesmo que você encontrou em sua conta de usuário normal. Em seguida, copie seu '.Xauthority' em '/Users/normal user/.Xauthority' para '/var/root/'. O arquivo .Xauthority já está lá, mas isso seria o suficiente.
cp /Users/normal user/.Xauthority /var/root/
É claro que a exportação pode funcionar, mas não há mal nenhum em fazer o que foi dito acima. Agora tente o seguinte.
echo $DISPLAY
E você deverá ver o seguinte
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
Se você 'ssh' no Ubuntu a partir do prompt normal do usuário, então você não precisa fazer a parte root, mas como eu uso root para 'ssh' em meus sistemas Ubuntu, muitas vezes tenho que fazer isso.
Então, quando você fizer ssh no Ubuntu, digite
echo $DISPLAY
E você veria algo como o seguinte
localhost:10.0
O procedimento acima funcionaria se você tivesse feito todos os outros bits, como encaminhamento e etc.
Novamente, se você quiser usar root em seu Ubuntu e se o 'echo $DISPLAY' não produzir nenhuma resposta, tente o seguinte (supondo que você esteja no prompt root).
cp /home/user name/.Xauthority /root/.Xauthority
Agora tente
echo $DISPLAY
novamente e você veria algo como o seguinte
localhost:10.0
Para se divertir, experimente
xeyes
E funciona no meu caso. Espero que isso seja útil e resolva um problema como o acima ou como o meu que alguém encontrou e passou algumas horas nesse problema enquanto coçava a cabeça e tentava arrancar cabelos como eu :-)).
Responder4
Depois de tentar várias opções diferentes, foi isso que funcionou para mim:
No meu Mac:
Eu primeiro inicio o xQuartz. Então eu vou para o meu terminal e executo o export DISPLAY=localhost:0
.
No meu PC Linux remoto:
Tive problemas com o wayland, então fui /etc/gdm/custom.conf
e descomentei a linha WaylandEnable=false
. Eu também configurei export XAUTHORITY=$HOME/.Xauthority
. E por último, defini export QT_QPA_PLATFORM=xcb
o que fez algumas bibliotecas gráficas funcionarem em python.
Depois de configurar isso, agora você pode usar ssh em seu servidor remoto ssh -Y remoteserver@IP
e esperamos que isso funcione.