Instalar e configurar xrdp para utilizar o Ambiente de Trabalho Remoto com o Ubuntu

Aplica-se a: ✔️ Conjuntos de dimensionamento flexíveis de VMs ✔️ do Linux

Quando novo no Linux ou para cenários de resolução de problemas rápidos, a utilização do ambiente de trabalho remoto pode ser mais fácil do que o acesso ao Secure Shell (SSH). Este artigo detalha como instalar e configurar um ambiente de trabalho (xfce) e ambiente de trabalho remoto (xrdp) para a VM do Linux com o Ubuntu.

O artigo foi escrito e testado com uma VM do Ubuntu 18.04.

Nota

A utilização do Ambiente de Trabalho Remoto através da Internet irá introduzir um "atraso" notável (latência de entrada) em comparação com a utilização do ambiente de trabalho local. Isto pode ser influenciado por vários fatores, incluindo a velocidade e distância da Internet local do datacenter onde a máquina virtual está alojada. Normalmente, este atraso não reflete o desempenho da própria VM.

Pré-requisitos

Este artigo requer uma VM Ubuntu 18.04 LTS ou Ubuntu 20.04 LTS existente no Azure. Se precisar de criar uma VM, utilize um dos seguintes métodos:

Instalar um ambiente de trabalho na VM do Linux

A maioria das VMs do Linux no Azure não tem um ambiente de trabalho instalado por predefinição. As VMs do Linux são normalmente geridas através de ligações SSH em vez de um ambiente de trabalho. No entanto, existem vários ambientes de trabalho que pode optar por instalar. Consoante a sua escolha de ambiente de trabalho, consome até 2 GB de espaço em disco e demora até dez minutos a instalar e configurar todos os pacotes necessários.

O exemplo seguinte instala o ambiente de trabalho xfce4 leve numa VM do Ubuntu. Os comandos para outras distribuições variam ligeiramente (utilize yum para instalar no Red Hat Enterprise Linux e configure as regras adequadas selinux ou utilize zypper para instalar no SUSE, por exemplo).

Primeiro, SSH para a VM. O exemplo seguinte liga-se à VM com o nome myvm.westus.cloudapp.azure.com com o nome de utilizador de azureuser. Utilize os seus próprios valores:

ssh azureuser@myvm.westus.cloudapp.azure.com

Se estiver a utilizar o Windows e precisar de mais informações sobre a utilização do SSH, veja Como utilizar chaves SSH com o Windows.

Em seguida, instale o xfce com apt :

sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4
sudo apt install xfce4-session

Instalar e configurar um servidor de ambiente de trabalho remoto

Agora que tem um ambiente de trabalho instalado, configure um serviço de ambiente de trabalho remoto para escutar as ligações de acesso remoto recebidas. O xrdp é um servidor RDP (Remote Desktop Protocol) open source que está disponível na maioria das distribuições do Linux e funciona bem com o xfce. Instale xrdp na VM do Ubuntu da seguinte forma:

sudo apt-get -y install xrdp
sudo systemctl enable xrdp

No Ubuntu 20, tem de conceder acesso de certificado a um utilizador xrdp:

sudo adduser xrdp ssl-cert

Diga ao xrdp que ambiente de trabalho deve utilizar quando iniciar a sessão. Configure xrdp para utilizar xfce como ambiente de trabalho da seguinte forma:

echo xfce4-session >~/.xsession

Reinicie o serviço xrdp para que as alterações entrem em vigor da seguinte forma:

sudo service xrdp restart

Definir uma palavra-passe de conta de utilizador local

Se criou uma palavra-passe para a sua conta de utilizador quando criou a VM, ignore este passo. Se utilizar apenas a autenticação de chave SSH e não tiver uma palavra-passe de conta local definida, especifique uma palavra-passe antes de utilizar xrdp para iniciar sessão na sua VM. O xrdp não consegue aceitar chaves SSH para autenticação. O exemplo seguinte especifica uma palavra-passe para a conta de utilizador azureuser:

sudo passwd azureuser

Nota

Especificar uma palavra-passe não atualiza a configuração do SSHD para permitir inícios de sessão de palavras-passe, se atualmente não o fizer. Do ponto de vista de segurança, pode querer ligar-se à VM com um túnel SSH através da autenticação baseada em chaves e, em seguida, ligar ao xrdp. Em caso afirmativo, ignore o passo seguinte ao criar uma regra de grupo de segurança de rede para permitir o tráfego de ambiente de trabalho remoto.

Criar uma regra do Grupo de Segurança de Rede para tráfego de Ambiente de Trabalho Remoto

Para permitir que o tráfego do Ambiente de Trabalho Remoto chegue à VM do Linux, é necessário criar uma regra de grupo de segurança de rede que permita que o TCP na porta 3389 chegue à VM. Para obter mais informações sobre as regras do grupo de segurança de rede, consulte O que é um grupo de segurança de rede? Também pode utilizar o portal do Azure para criar uma regra de grupo de segurança de rede.

O exemplo seguinte cria uma regra de grupo de segurança de rede com az vm open-port na porta 3389. Na CLI do Azure, não na sessão SSH para a VM, abra a seguinte regra do grupo de segurança de rede:

az vm open-port --resource-group myResourceGroup --name myVM --port 3389

Ligar a VM do Linux a um cliente de Ambiente de Trabalho Remoto

Abra o cliente de ambiente de trabalho remoto local e ligue-se ao endereço IP ou nome DNS da VM do Linux.

Captura de ecrã do cliente de ambiente de trabalho remoto.

Introduza o nome de utilizador e a palavra-passe da conta de utilizador na sua VM da seguinte forma:

Captura de ecrã do ecrã de início de sessão xrdp.

Após a autenticação, o ambiente de trabalho xfce será carregado e terá um aspeto semelhante ao seguinte exemplo:

ambiente de trabalho xfce através de xrdp

Se o cliente RDP local utilizar a autenticação ao nível da rede (NLA), poderá ter de desativar essa definição de ligação. Atualmente, o XRDP não suporta NLA. Também pode ver soluções RDP alternativas que suportam NLA, como o FreeRDP.

Resolução de problemas

Se não conseguir ligar à VM do Linux com um cliente de Ambiente de Trabalho Remoto, utilize netstat na VM do Linux para verificar se a VM está a escutar as ligações RDP da seguinte forma:

sudo netstat -plnt | grep rdp

O exemplo seguinte mostra a VM a escutar na porta TCP 3389 conforme esperado:

tcp     0     0      127.0.0.1:3350     0.0.0.0:*     LISTEN     53192/xrdp-sesman
tcp     0     0      0.0.0.0:3389       0.0.0.0:*     LISTEN     53188/xrdp

Se o serviço xrdp-sesman não estiver a escutar, numa VM do Ubuntu reinicie o serviço da seguinte forma:

sudo service xrdp restart

Reveja os registos em /var/log na VM do Ubuntu para obter indicações sobre o motivo pelo qual o serviço pode não estar a responder. Também pode monitorizar o syslog durante uma tentativa de ligação ao ambiente de trabalho remoto para ver erros:

tail -f /var/log/syslog

Outras distribuições do Linux, como Red Hat Enterprise Linux e SUSE, podem ter diferentes formas de reiniciar serviços e localizações de ficheiros de registo alternativas para rever.

Se não receber nenhuma resposta no seu cliente de ambiente de trabalho remoto e não vir eventos no registo do sistema, este comportamento indica que o tráfego de ambiente de trabalho remoto não consegue aceder à VM. Reveja as regras do grupo de segurança de rede para garantir que tem uma regra para permitir o TCP na porta 3389. Para obter mais informações, veja Resolver problemas de conectividade da aplicação.

Passos seguintes

Para obter mais informações sobre como criar e utilizar chaves SSH com VMs do Linux, veja Criar chaves SSH para VMs do Linux no Azure.

Para obter informações sobre como utilizar o SSH a partir do Windows, veja Como utilizar chaves SSH com o Windows.