Bits relevantes do / etc / ssh / sshd_config do servidor:
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
Bits relevantes do $ HOME / .ssh / config do cliente:
Host *
XAuthLocation /opt/X11/bin/xauth
ForwardX11 yes
ForwardX11Trusted yes
Usando o XQuartz no macOS High Sierra.
Estou criando uma VM Ubuntu 18.04 vagante. Eu adicionei um segundo usuário fora do usuário vagrant
.
ssh -X vagrant@ubuntu-bionic xclock
Eu posso fazer o X11Forwarding funcionar quando eu fizer login como o usuário vagrant
. Não consigo fazer com que o X11Forwarding funcione quando eu fizer login como o usuário ops
.
ssh -X ops@ubuntu-bionic xclock
X11 forwarding request failed on channel 0
Error: Can't open display:
Eu quero que ele funcione com o usuário ops
. Do cliente, $DISPLAY
tem um valor. Quando eu faço o login com vagrant
, $DISPLAY
tem um valor. Quando faço o login como ops
, $DISPLAY
não está definido. Se eu definir $DISPLAY
para corresponder ao que é com o vagrant
user, recebo o mesmo erro:
Error: Can't open display: localhost:10.0
quando X11UseLocalhost yes
Error: Can't open display: ubuntu-bionic:10.0
quando X11UseLocalhost no
Se eu fizer login como ops
e, em seguida, sudo su - vagrant
, $DISPLAY
permanecerá não definido. Se eu fizer login como vagrant
e, em seguida, sudo su - ops
, $DISPLAY
será herdada.
O que estou perdendo para que isso funcione? Eu corri xhost +
em cada usuário (incluindo sudo -s root xhost +
) e ainda não funciona.
Se eu adicionar -vv
aos meus comandos ssh, vejo esta mensagem quando me conectar como vagrant
:
X11 forwarding request accepted on channel 0
e como ops
:
Remote: X11 forwarding disabled in user configuration file.
X11 forwarding request failed on channel 0