Executando Aplicações X11 remotas por ssh

Tags: , , — July 3, 2008 @ 2:24 pm

Já pensou na possibilidade de executar seus programas preferidos, instalados em seu computador de casa, a partir de seu computador do trabalho? Não apenas executar o mesmo programa, mas sim com todas as configurações, local de execução e acesso aos arquivos de seu pc de casa, sem precisar ter o mesmo programa instalado no trabalho.

O SSH, ou Secure Shell, é um aplicativo Unix que permite acesso remoto, por terminal, a outros computadores. Porém, o proŕio SSH tem uma opção de tunelar o X Server, possibilitando a execução de aplicativos X11 remotos.

Já a algum tempo eu sabia que era possível fazer esse tunelamento para executar aplicativos X remotos por ssh, mas ainda não havia pesquisado a respeito. Foi então que ontem me surgiu a idéia de rodar os programas que tenho no trabalho (principelmente o Eclipse IDE) para desenvolver a partir de casa, sem precisar copiar todos os fontes ou montardiretórios remotos, e então acabei me surpreendendo com a facilidade disto.

A maioria dos usuários GNU/Linux devem estar acostumados a acessar máquinas remotas por ssh, com comandos como:

ssh user@server.com

ou

ssh -p 22 -l user 192.168.1.1

Nos exemplos acima exibo dois modos básicos para conexões com ssh. a opção -p é necessária apenas caso o servidor remoto ou cliente nãoestejam usando portas padrões para o SSH, a opção -l serve para definir o usuário a logar no servidor remoto, sendo necessário apenas quando os nomes de usuários no servidor e cliente não coincidem, e é equivalente a utilizar user@ antes doendereço do servidor, que pode ser um endereço de ip, ou um nome de domínio.

Agora, para tunelar o X server basta adicionar a opção -X a linha de comando:

ssh -p 22 -l user -X 192.168.1.1

Assim, uma vez conectado ao servidor remoto, basta executar qualquer aplicação normalmente, que as janelas destas gerão criadas em sua máquina local. Veja o screenshot de exemplo:

Aplicações X remotas, rodando através de ssh -X lBreackout2 e Wine Notepad

No primeiro screenshot acima, estão sendo executados localmente (em meu computador de trabalho)  o terminal, com a sessão ssh aberta, o monitor de sistema GKrellm (a direita), o gerenciador de arquivos Thunar, e a calculadora Galculator, acima da qual está um outra calculadora sendo executada a partir do computador remoto (meu laptop, em casa, conectado através de uma rede sem fio de longa distância), note a diferença no tema do GTK2, e mais acima está o aplicativo Eye of Gnome, o qual tenho instalado apenas no Notebook.

No segundo Screenshot estou executando o jogo lBreakout2 e o Wine Notepad (um clone do editor Notepad do windows, para Wine), demonstrando como é possível rodar praticamente qualquer aplicativo remoto, é possivel inclusive executar um gerenciador de janelas ou desktop inteiramente.

Diferente do VNC, que geralmente se conecta a uma sessão X existente, o tunelamento do X sob ssh envia os aplicativos executados para a sessão X existente na máquina cliente (ou seja, não invade a privacidade de quem estiver utilizando a máquina remota).

Infelizmente o ssh não possibilita tunelar sons reproduzidos por aplicativos X, assim se vc executar um player de mídia, quem irá acabar ouvindo é quem estiver perto do servidor remoto. Aplicativos que exijam OpenGL ou outras bibliotecas gráficas podem não ser executados corretamente também.

Fonte: http://www.vanemery.com/Linux/XoverSSH/X-over-SSH2.html

Se você gostou deste artigo, inscreva-se em meu RSS feed!

Related posts

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment