Como configurar uma área de tabalho remota com o X2Go no Ubuntu 20.04

O autor selecionou a Software in the Public Interest (SPI) para receber uma doação como parte do programa Write for DOnations.

Introdução

Normalmente, servidores baseados em Linux não vêm com uma interface gráfica de usuário (GUI) pré-instalada. Sempre que você quiser executar aplicações GUI em sua instância, a solução típica é empregar o Virtual Network Computing (VNC). Infelizmente, as soluções VNC podem ser lentas e inseguras; muitas também exigem muita configuração manual. Como alternativa, o X2Go oferece uma “área de trabalho na nuvem” de trabalho, completo com todas as vantagens de um sistema de computação sempre online, remotamente acessível e facilmente escalável com uma rede rápida. Ele também é mais responsivo e mais seguro do que muitas soluções VNC.

Neste tutorial, você irá usar o X2Go para criar um ambiente de área de trabalho XFCE Ubuntu 20.04 que você possa acessar remotamente. Esta área de trabalho na nuvem irá incluir os mesmos utilitários que você teria se instalasse o Ubuntu 20.04 e o ambiente XFCE em seu computador pessoal (quase idêntico a uma configuração Xubuntu).

A configuração descrita neste tutorial é útil quando:

  • Você precisa acessar um sistema operacional completo baseado em Linux com um ambiente de área de trabalho, mas não pode instalá-lo em seu computador pessoal.
  • Você usa vários dispositivos em várias localizações e quer um ambiente de trabalho consistente com as mesmas ferramentas, aparência, arquivos e desempenho.
  • Seu provedor de serviços de Internet lhe dá muito pouca largura de banda, mas você precisa de acesso a dezenas ou centenas de gigabytes de dados.
  • Trabalhos de longa duração tornam seu computador local indisponível durante horas ou dias. Imagine que você tenha que compilar um grande projeto, que irá demorar 8 horas no seu laptop. Você não será capaz de assistir a filmes ou fazer qualquer outra coisa que consuma muitos recursos enquanto seu projeto é compilado. Mas se você executar essa tarefa em seu servidor, agora seu computador está livre para executar outras tarefas.
  • Você está trabalhando com uma equipe e é benéfico para todos ter um computador compartilhado que eles possam acessar para colaborar em um projeto.

Pré-requisitos

Antes de iniciar este tutorial, você precisará de:

  • Uma instância Ubuntu 20.04 x64 com 2 GB de RAM ou mais. 2GB é mínimo, mas um servidor com 4GB ou mais é ideal se você estiver planejando executar aplicativos que consumam muita memória. Você pode usar um Droplet da DigitalOcean se você quiser.

  • Um usuário com privilégios sudo e uma chave SSH. Siga este guia para começar: Configuração inicial de servidor com o Ubuntu 20.04. Certifique-se de completar o Passo 4 e configurar seu firewall para restringir todas as conexões, exceto pelo OpenSSH.

Passo 1 — Instalando o ambiente de área de trabalho no seu servidor

Com seu servidor em funcionamento e seu firewall configurado, você está pronto para instalar o ambiente gráfico para o servidor X2Go.

Primeiro, atualize as informações do gerenciador de pacotes sobre o software mais recente disponível:

  • sudo apt-get update

Neste tutorial, você está instalando o XFCE como o ambiente de desktop. O XFCE não usa efeitos gráficos como a composição, tornando-o mais compatível com o X2Go e otimizando as atualizações de tela. Para referência, o ambiente de área de trabalho LXDE e o ambiente de área de trabalho MATE (com a composição desabilitada) também funcionam bem, mas você precisará alterar o comando neste tutorial onde você instala o ambiente de área de trabalho. Por exemplo, em vez de sudo apt-get install xubuntu-desktop, você escreveria sudo apt-get install lubuntu-desktop para instalar o LXDE.

Há duas maneiras de instalar o XFCE; o ambiente de área de trabalho reduzido ou o ambiente de área de trabalho completo. A melhor escolha para você irá depender das suas necessidades, que iremos abordar em seguida. Escolha um dos dois.

O ambiente de área de trabalho completo

Recomendado para a maioria dos casos de uso. Se você não quiser escolher a dedo todos os componentes que você precisa e prefere ter um conjunto padrão de pacotes, como um processador de palavras, navegador Web, cliente de e-mail e outros acessórios pré-instalados, escolha o xubuntu-desktop.

Instale e configure o ambiente de área de trabalho completo. O ambiente de área de trabalho completo é semelhante ao que você teria se instalasse o Xubuntu a partir de um DVD/cartão de memória USB inicializável em seu computador local:

  • sudo apt-get install xubuntu-desktop

Quando solicitado a escolher um gerenciador de exibição, escolha o lightdm.

Escolhendo o lightdm como gerenciador de exibição

O ambiente de área de trabalho reduzido

De maneira alternativa, se você quiser instalar um conjunto pequeno de pacotes fundamentais e então implementá-los adicionando manualmente o que você precisa, use o meta pacote xubuntu-core.

Um meta pacote não contém somente um único pacote; em vez disso, um meta pacote inclui uma coleção inteira de pacotes. Instalar um meta pacote evita que o usuário instale manualmente vários componentes.

Instale o xfce4 e todas as dependências adicionais necessárias para dar suporte a ele:

  • sudo apt-get install xubuntu-core

Você acabou de instalar um ambiente gráfico. Agora, você irá estabelecer uma maneira de visualizá-lo remotamente.

Passo 2 — Instalando o X2Go no servidor

O X2Go vem com dois componentes principais: o servidor, que inicia e gerencia a sessão gráfica na máquina remota, e o cliente, que você instala em seu computador local para visualizar e controlar a área de trabalho ou aplicação remota.

Em versões anteriores do Ubuntu (antes de 18.04), o x2goserver não vinha incluído nos repositórios padrão, então você teria que seguir passos como estes para obter o pacote de software. Estamos deixando o link aqui apenas para referência, caso o pacote seja abandonado em futuras versões do Ubuntu. Felizmente, o Ubuntu 20.04, de codinome Focal Fossa, inclui o pacote que você precisa em seus repositórios padrão, então a instalação é mais rápida.

Para instalar o X2Go em seu servidor, digite o seguinte comando:

  • sudo apt-get install x2goserver x2goserver-xsession

Neste momento, seu servidor não requer nenhuma configuração adicional. No entanto, tenha em mente que se você seguiu a recomendação de configurar chaves SSH no guia Configuração inicial de servidor com o Ubuntu 20.04, então você precisará ter sua chave SSHprivada disponível em todas as máquinas locais que você pretende usar. Se você não configurou uma chave SSH privada, certifique-se de escolher uma senha forte.

Nota: lembre-se de que se você ficar sem memória RAM, o kernel do Linux pode interromper abruptamente alguns aplicativos, resultando em trabalho perdido. Se estiver usando um Droplet da DigitalOcean e notar que seus programas exigem mais RAM, você pode desativar temporariamente seu Droplet e atualizá-lo (redimensionar) para um com mais memória.

Você acabou de configurar seu servidor. Digite exit ou feche sua janela de terminal. O resto dos passos serão focados em configurar o cliente em sua máquina local.

Passo 3 — Instalando o cliente X2Go localmente

O X2Go já vem pronto para ser usado assim que instalado. Se estiver usando o Windows ou o Mac OS X em sua máquina local, baixe o software do cliente X2Go aqui. Se estiver usando o Debian ou o Ubuntu, instale o cliente X2Go com este comando em sua máquina local:

  • sudo apt-get install x2goclient

Depois de baixar o software, você está pronto para instalá-lo. Abra o instalador e selecione seu idioma preferido. Agora, concorde com a licença e deixe o assistente guiá-lo pelos passos restantes. Normalmente, não há nenhuma razão para alterar os valores padrão que já vêm preenchidos nestes passos.

O X2Go funciona bem com os valores padrão, mas ele também é altamente personalizável. Se quiser obter informações adicionais, visite a documentação oficial do X2Go.

Agora que instalou o cliente de área de trabalho, você pode configurar suas configurações e conectar-se ao servidor do X2Go para usar sua área de trabalho XFCE remota.

Passo 4 — Conectando-se à área de trabalho remota

Quando você abrir o cliente X2Go pela primeira vez, uma janela aparecerá. Se isso não acontecer, clique em Session no menu superior esquerdo e selecione New session ….

Captura de tela do cliente X2Go - Criando uma nova sessão

No campo Session name, digite algo para ajudar com a diferenciação entre servidores. Usar um nome de sessão é particularmente útil se você planeja conectar-se a várias máquinas.

Digite o endereço IP do seu servidor ou um nome de domínio totalmente qualificado (FQDN) no campo Host em Server.

Digite o nome de usuário que você usou para sua conexão via protocolo SSH no campo Login.

Como você instalou o XFCE no Passo dois, escolha o XFCE como seu Session type.

Por fim, como você se conecta ao servidor com chaves SSH, clique no ícone de pasta ao lado de Use RSA/DSA key for ssh connection e procure por sua chave privada. Caso não tenha optado por usar as chaves SSH mais seguras, deixe isso vazio; o cliente X2Go irá pedir uma senha cada vez que você fizer login.

O resto das configurações padrão será suficiente por enquanto, mas à medida em que for ficando mais familiarizado com o software, você pode ajustar o cliente com base em suas preferências individuais.

Depois de pressionar o botão OK, inicie sua sessão gráfica clicando na caixa branca que inclui o nome da sua sessão no lado superior direito da caixa.

Janela principal do X2Go - Lista de sessões

Se estiver utilizando o OS X em sua máquina local, o OS X pode solicitar que você instale o XQuartz, que é necessário para executar o X11. Se assim for, siga as instruções para instalá-lo agora.

Em alguns segundos, sua área de trabalho remota aparecerá e você pode começar a interagir com ela.

Existem alguns atalhos de teclado que você pode usar que são bastante úteis para ter uma experiência melhor em sistemas operacionais baseados em Windows e Linux.

Nota: essas duas primeiras opções podem exibir um comportamento problemático em edições modernas do Windows. Você ainda pode testá-las neste momento, caso as versões posteriores do X2Go consertem os problemas. Se falharem, apenas evite usar o mesmo atalho de teclado no futuro.

CTRL+ALT+F irá alternar entre o modo de tela cheia ligado e desligado. Trabalhar no modo de tela cheia passar uma sensação maior da experiência de área de trabalho local. O modo de tela cheia também ajuda a máquina remota a receber os atalhos de teclado em vez de sua máquina local.

CTRL+ALT+M irá minimizar a visualização remota, mesmo que você esteja no modo de tela cheia.

CTRL+ALT+T irá desconectá-lo da sessão, mas deixar a GUI em execução no servidor. É apenas uma maneira rápida de desconectar-se sem fazer logoff ou fechar aplicativos no servidor. O mesmo acontecerá se clicar no botão de fechamento da janela.

Por fim, há duas maneiras de finalizar a sessão remota e fechar todos os programas gráficos em execução nela. Você pode fazer logoff remotamente no menu inicial do XFCE, ou clicar no botão marcado com um círculo e uma linha pequena (como um ícone de ligar/modo de espera) no canto inferior direito da parte principal da tela do X2Go.

O primeiro método é mais direto, mas pode deixar programas como o software de gerenciamento de sessões em execução. O segundo método irá fechar tudo, mas pode fazer isso forçosamente se um processo não puder ser finalizado de maneira direta. Em ambos os casos, certifique-se de salvar seu trabalho antes de prosseguir.

Janela principal do X2Go - botão de encerramento de sessão

Agora, você acabou de acessar e configurar com sucesso sua área de trabalho remota.

Conclusão

Neste tutorial, você usou o X2Go para criar um ambiente GUI robusto e remoto para o sistema operacional Ubuntu. Agora que tudo está funcionando, aqui estão algumas ideias sobre como usar essa área de trabalho:

  • Você pode centralizar seu trabalho de desenvolvimento criando um repositório git.
  • Você pode instalar um IDE/editor de código como o NetBeans ou o Eclipse. Você também pode usar o Visual Studio Code para o desenvolvimento remoto através do plugin Remote-SSH.
  • Você pode configurar um servidor Web para testar aplicativos Web.
  • Você também pode aprimorar sua área de trabalho remota com um bom esquema de backup para preservar seu ambiente de trabalho e dados essenciais caso algo venha a dar errado. Com a DigitalOcean, você também pode criar snapshot de seus Droplets quando estiver satisfeito com uma configuração específica. Desta forma, você pode testar alterações que apresentam risco e sempre voltar a um estado conhecido que funcione.

Se quiser aprender mais, visite o site da documentação oficial do X2Go.