Não é surpresa alguma que o padrão de-facto de acesso remoto à qualquer sistema Linux (e Unix em geral) é o SSH. Sua ideia fundamentalmente simples reside em fornecer um terminal remoto onde é realizada a entrada e saída de dados puramente em modo texto. Como tudo que você precisa para administrar adequadamente um servidor Linux é a linha de comandos, o SSH é mais do que suficiente. Digo isto pois o SSH é útil em uma gama enorme de propósitos, desde transferir arquivos a fornecer uma VPN temporária. Mas o que acontece quando você precisa acessar não apenas o modo texto, mas também a interface gráfica?

A primeira alternativa é simplesmente utilizar o SSH em conjunto com a opção “X11 Forwarding”. O ambiente gráfico do Linux é literalmente um servidor, o que possibilita a utilização remota do mesmo de maneira natural. O problema é ele foi desenvolvido com o propósito de fornecer acesso localmente, seja no próprio computador ou em uma rede local. Sendo assim, embora funcione na internet, seu desempenho está longe de ser suficiente. É possível ativar a compressão do protocolo SSH, melhorando um pouco a performance, mas ainda assim não é a solução perfeita.

A segunda opção (e provavelmente a mais conhecida) é utilizar o VNC, um protocolo desenvolvido especialmente para acesso remoto em modo gráfico. O desempenho do VNC é aceitável, o problema é a segurança (ou a falta dela) envolvida neste processo. No VNC os dados são transmitidos sem qualquer encriptação (embora a senha utilizada no login seja transmitida de forma segura). É possível contornar esta fraqueza utilizando o próprio SSH para tunelar a conexão ou até mesmo uma VPN previamente estabelecida, mas nisto chegamos na terceira opção, o NX, que une o melhor dos dois mundos.

O NX possui várias implementações, como FreeNX (livre), o Neatx (implementação livre do Google) e o NoMachine NX (comercial, porém com uma versão gratuita do servidor e seu cliente). A melhor parte, é que embora o NX também seja baseado na arquitetura cliente-servidor, para utilizá-lo basta ter acesso ao serviço SSH da máquina remota. Não é preciso abrir uma outra porta para acessar diretamente o servidor NX, a não ser que você queira utilizá-lo sem encriptação (o que acaba o tornando não muito diferente do VNC, mas pode ser útil caso o processamento consumido pela encriptação seja proibitivo, como um cliente muito lento ou um servidor sobrecarregado).

O Morimoto, sempre ele, possui um tutorial bacana sobre a instalação e configuração do NoMachine NX, tanto do ponto de vista do cliente quanto do servidor. A única ressalva a ser feita, é que caso seu servidor SSH não rode na porta padrão (22, TCP), é necessário editar os arquivos “node.cfg” e “server.cfg”, alterando os parâmetros SSHDPort e SSHDAuthPort (este disponível apenas no segundo arquivo). Normalmente eles estão em linhas comentadas, bastando apenas remover o sustenido da frente e alterar a porta especificada. Ambos os arquivos se localizam na pasta “/usr/NX/etc/”.