Um deles tomou um pouco mais de tempo.
Vamos ao cenario.
Precisavamos conectar em uma maquina que estava no cliente e rodar uma aplicacao com interface grafica, ate ai tudo bem, mas inicialmente 2 empecilhos surgiram:
1 – Existia uma VPN Cisco no meio.
2 – O servidor (Solaris) nao possuia interface grafica.
Fomos a caça de um client VPN.
Instalamos uma PPTP GUI . Obvio que nao iria funcionar , a VPN era Cisco (darrr).
Perdemos algumas horas tentando instalar um Client Cisco tempo suficiente pra dizer ... NAO PRESTA. Creio que o principal dos motivos e' que toda vez que atualizarmos o kernel teremos que recompila-lo. Sem contar que ele e' proprietario.
Bom , instalamos o vpnc. Nao e' rico graficamente como o Client Cisco, mas funciona , e isso e' o que interessa.
sudo apt-get install vpnc
Conectei na VPN . Uma vez dentro , conectamos no servidor via ssh habilitando o X11 forwarding.
ssh +X servidor
Depois tentei usando -Y. E sempre recebia a mesma mensagem de erro:
ERROR: could not initialize interface awt - exception: java.lang.InternalError: Can't connect to X11 window server using 'meuIp:0.0' as the value of the DISPLAY variable
Um amigo aqui da Summa (Natanael Maia) ja havia me adiantado que isso iria acontecer e que estava acontecendo pois o servidor X deveria estar ouvindo na porta 6000. Mais um problema.
Aqui comecou a saga... vamos aos arquivos que devem ser editados:
Primeiro va em /etc/ssh/ssh_config e coloque as linhas (por default elas vem comentadas):
ForwardX11 yes
ForwardX11Trusted yes
TCPKeepAlive yes
Abra o arquivo /usr/X11R6/bin/startx e certifique-se de que a variavel esteja vazia.
serverargs=""
O startx procurara por 2 arquivos ao inicializar, primeiro ele buscara no home do usuario por .xinitrc e .xserverrc e depois pelos arquivos xinitrc e xserverrc que ficam em /etc/X11/xinit/
Abra o arquivo /etc/X11/xinit/xserverrc e comente o parametro:
-nolisten tcp
Agora vamos nos certificar que o “firewall” local nao esta bloqueando o trafego. Va para o arquivo /etc/X11/gdm/gdm.conf e procure pela propriedade DisallowTCP, em [Security]:
DisallowTCP=false
Ainda no terminal:
sudo gdmsetup
Na aba “General” marque a opcao :
Restart the xServer with each login
Isso fara com que as atualizacoes surtam efeito.
Na aba “Remote” selecione Style Plain.
Pronto , isso deve funcionar. Reinicie o servidor X.
PS: O servidor deve estar ciente de tudo isso. Uma variavel DISPLAY deve ser setada no servidor e ele deve estar com o X11 Forwarding habilitado.