Mi máquina local es Linux Mint y la remota es Centos 7. Intento abrir gnome-terminal en una máquina remota con x-forwarding y no funciona.
Cuando me conecto al host en modo interactivo
$ ssh -Y centos-host
Luego, en la sesión abierta, puedo ejecutar gnome-terminal y x-forwarding funcionando.
$ gnome-terminal
$ netstat -nltp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN -
Sin embargo, cuando intento correr
$ ssh -Y centos-host gnome-terminal
La ventana con la terminal gnome se abrió, pero no se creó ningún túnel para X.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
Tengo otra máquina remota Linux Mint y no experimenté ese problema. Entonces, creo que algo anda mal con centos 7.
Por favor ayuda.
Gracias.
Respuesta1
La razón es que gnome-terminal
se bifurca en un segundo plano. Si lo ejecuta en su ssh
sesión interactiva, notará que obtiene un nuevo símbolo del sistema aunque la terminal todavía esté abierta. En el caso no interactivo, tan pronto como esto suceda, ssh
pensará que el comando ha terminado y cerrará la sesión, incluido el cierre del socket X11 de escucha en el servidor. Como todavía hay conexiones X11 activas, ssh
no sale inmediatamente, por lo queaspectocomo si la sesión todavía estuviera activa, sin embargo, no se pueden abrir nuevas conexiones X11.
Solías poder hacer esto usando gnome-terminal --disable-factory
, sin embargo, desafortunadamente esto se eliminó gnome-terminal
en algún momento. Tienes dos opciones ahora:
- Utilice otro programa de terminal que no se bifurque en segundo plano, por ejemplo
xterm
- Directamente después de iniciar
gnome-terminal
, en la mismassh
sesión ejecute un comando que no finalice, por ejemplossh -Y server 'gnome-terminal; echo Press enter to exit; read'
Respuesta2
Configuración:
- CentOS Linux versión 7.6.1810 (Núcleo)
/etc/ssh/sshd_config
contiene:
X11Forwarding yes
El siguiente comando me funciona:
ssh -Y HOST bash -l -c gnome-terminal --display=${DISPLAY} < /dev/null > /dev/null 2>&1 &
El gnome-terminal --disable-factory
que me informó --disable-factory
ya no fue apoyado.