Minha máquina local é linux mint e a remota é centos 7. Tento abrir o gnome-terminal na máquina remota com x-forwarding e não está funcionando.
Quando me conecto ao host no modo interativo
$ ssh -Y centos-host
Então, na sessão aberta, posso executar o gnome-terminal e o 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 -
No entanto, quando eu tento você corre
$ ssh -Y centos-host gnome-terminal
A janela com o terminal gnome foi aberta, mas nenhum túnel para o X foi criado.
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 -
Eu tenho outra máquina remota Linux Mint e não tive esse problema com ela. Então, acho que há algo errado com o centos 7.
Por favor ajude.
Obrigado.
Responder1
A razão é que gnome-terminal
isso fica em segundo plano. Se você executá-lo em sua ssh
sessão interativa, notará que receberá um novo prompt de comando, mesmo que o terminal ainda esteja aberto. No caso não interativo, assim que isso acontecer, ssh
pensará que o comando foi encerrado e fechará a sessão, inclusive fechando o soquete X11 de escuta no servidor. Como ainda existem conexões X11 ativas, ssh
não sai imediatamente, por issovisualcomo se a sessão ainda estivesse ativa, porém nenhuma nova conexão X11 pode ser aberta.
Você costumava fazer isso usando gnome-terminal --disable-factory
, mas infelizmente isso foi removido gnome-terminal
em algum momento. Você tem duas opções agora:
- Use outro programa de terminal que não fique em segundo plano, por exemplo
xterm
- Logo após iniciar
gnome-terminal
, na mesmassh
sessão execute um comando que não termina, por exemplossh -Y server 'gnome-terminal; echo Press enter to exit; read'
Responder2
Configuração:
- CentOS Linux versão 7.6.1810 (núcleo)
/etc/ssh/sshd_config
contém:
X11Forwarding yes
O seguinte comando funciona para mim:
ssh -Y HOST bash -l -c gnome-terminal --display=${DISPLAY} < /dev/null > /dev/null 2>&1 &
O gnome-terminal --disable-factory
que me informou --disable-factory
não era mais suportado.