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