Respuestas:
Hay varias formas de hacer esto, la que prefiero es reenviar el puerto ssh:
Primero, conéctese a la máquina B y envíe [localPort] a C: 22 a B
A$ ssh -L [localPort]:C:22 B
Luego, conéctese a C desde A a través de este túnel recién creado usando [localPort], reenviando X11
A$ ssh -X -p [localPort] localhost
Ahora podemos ejecutar programas X11 en C y hacer que se muestren en A
C$ xclock
[localPort] puede ser cualquier puerto que aún no esté escuchando en A, a menudo uso 2222 por simplicidad.
Esto se puede lograr fácilmente mediante el reenvío de puertos:
A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock
Puerto localhost: 2022 se reenvía a C: 22 a través de B SSH a C a través de localhost: 2022 Utilice X como normal
Suponiendo que el problema es que la máquina central no tiene X, pero de lo contrario está configurada para permitir el reenvío de X11, solo instale xauth.
en un sistema basado en yum (fedora, redhat, centos):
B$ sudo yum install xauth
en un sistema basado en apt (debian, ubuntu):
B$ sudo apt-get install xauth
yum
en un pi?
Para versiones más recientes de opensshd, debe deshabilitarlo X11UseLocalhost
para que esto funcione.
Debe hacer esto en el Host C /etc/ssh/sshd_config
y reiniciar sshd para que esto funcione:
X11Forwarding yes
X11UseLocalhost no
No puede reenviar la pantalla X11 si tiene deshabilitado el reenvío X11 en cualquier sshd que esté utilizando.
man sshd_config:
X11Forwarding
Specifies whether X11 forwarding is permitted. The argument must be “yes”
or “no”. The default is “no”.
Debe asegurarse de que X11Forwarding esté habilitado en el destino y todos los sshds intermedios que esté utilizando.
Solo una pequeña pista: debe intentar usar VNC, el reenvío de pantalla X11 consume bastante ancho de banda.
yes
".