Installare e configurare Desktop remoto per connettersi a una VM Linux di Azure

Le macchine virtuali Linux (VM) di Azure in genere vengono gestite dalla riga di comando tramite una connessione secure shell (SSH). Quando si è nuovi a Linux, o per scenari di risoluzione dei problemi rapidi, l'uso di desktop remoto potrebbe risultare più facile. Questo articolo illustra come installare e configurare un ambiente desktop (xfce) e desktop remoto (xrdp) per VM Linux usando il modello di distribuzione Resource Manager.

Prerequisiti

Questo articolo richiede l'esistenza di una VM Linux di Azure. Se è necessario creare una macchina virtuale, usare uno dei metodi seguenti:

Installare un ambiente desktop nella VM Linux

La maggior parte delle macchine virtuali Linux di Azure non presenta un ambiente desktop installato per impostazione predefinita. Le macchine virtuali Linux in genere vengono gestite usando connessioni SSH piuttosto che un ambiente desktop. In Linux esistono diversi ambienti desktop tra i quali è possibile scegliere. A seconda dell'ambiente desktop scelto, questo può consumare da 1 a 2 GB di spazio su disco e può impiegare da 5 a 10 minuti per installare e configurare tutti i pacchetti necessari.

Nell'esempio seguente l'ambiente desktop leggero xfce4 viene installato in una macchina virtuale Ubuntu. I comandi per le altre distribuzioni sono leggermente diversi (ad esempio, usare yum per installare in Red Hat Enterprise Linux e configurare regole selinux appropriate, oppure usare zypper per installare in SUSE).

Innanzitutto, stabilire una connessione SSH alla VM. Nell'esempio seguente viene eseguita la connessione alla macchina virtuale denominata myvm.westus.cloudapp.azure.com con il nome utente di azureuser:

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

Se si usa Windows, per altre informazioni sull'uso di SSH, vedere Come usare SSH con Windows in Azure.

Successivamente, installare xfce usando apt come indicato di seguito:

sudo apt-get update
sudo apt-get install xfce4

Installare e configurare un server di desktop remoto

Ora che si dispone di un ambiente desktop installato, configurare un servizio Desktop remoto per l'ascolto delle connessioni in ingresso. xrdp è un server Remote Desktop Protocol (RDP) open source che è disponibile nella maggior parte delle distribuzioni Linux e funziona bene con xfce. Installare xrdp nella VM Ubuntu come indicato di seguito:

sudo apt-get install xrdp

Indicare a xrdp quale ambiente desktop usare quando si avvia la sessione. Configurare xrdp per usare xfce come ambiente desktop come indicato di seguito:

echo xfce4-session >~/.xsession

Riavviare il servizio xrdp per rendere effettive le modifiche, come indicato di seguito:

sudo service xrdp restart

Impostare una password per l'account utente locale

Se la password dell'account utente è stata impostata al momento della creazione della macchina virtuale, ignorare questo passaggio. Se si usa soltanto l'autenticazione con chiave SSH e non è stata creata una password per l'account locale, specificare una password prima di usare xrdp per accedere alla macchina virtuale. xrdp non può accettare chiavi SSH per l'autenticazione. Nell'esempio seguente viene specificata una password per l'account utente azureuser:

sudo passwd azureuser

Nota

Se attualmente gli accessi tramite password non sono permessi, l'impostazione della password non aggiorna la configurazione SSHD per consentirli. Dal punto di vista della sicurezza, l'utente potrebbe desiderare connettersi alla macchina virtuale con un tunnel SSH usando l'autenticazione tramite chiave e poi connettersi a xrdp. In questo caso, ignorare il passaggio seguente sulla creazione di una regola del gruppo di sicurezza di rete per consentire il traffico di desktop remoto.

Creare una regola del gruppo di sicurezza di rete per il traffico di Desktop remoto

Per consentire al traffico di Desktop remoto di raggiungere la VM Linux, è necessario creare una regola del gruppo di sicurezza di rete che consenta al TCP sulla porta 3389 di raggiungere la macchina virtuale. Per altre informazioni sulle regole dei gruppi di sicurezza di rete, vedere Che cos'è un gruppo di sicurezza di rete. È anche possibile usare il portale di Azure per creare una regola del gruppo di sicurezza di rete.

Nell'esempio seguente viene creata una regola del gruppo di sicurezza di rete con az network nsg rule create denominata myNetworkSecurityGroupRule per consentire il traffico sulla porta tcp 3389.

az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNetworkSecurityGroup \
    --name myNetworkSecurityGroupRule \
    --protocol tcp \
    --priority 1010 \
    --destination-port-range 3389

Connettere la macchina virtuale Linux con un client di Desktop remoto

Aprire il client di Desktop remoto locale e connettersi all'indirizzo IP o nome DNS della VM Linux. Immettere il nome utente e la password per l'account utente nella macchina virtuale come indicato di seguito:

Connettersi a xrdp usando il client di Desktop remoto

Dopo l'autenticazione, l'ambiente desktop xfce verrà caricato e apparirà come nell'esempio seguente:

ambiente desktop xfce tramite xrdp

Risoluzione dei problemi

Se non è possibile connettersi alla VM Linux usando un client di Desktop remoto, usare netstat nella VM Linux per verificare che la macchina virtuale stia ascoltando le connessioni RDP come indicato di seguito:

sudo netstat -plnt | grep rdp

Nell'esempio seguente viene mostrata la macchina virtuale in ascolto sulla porta TCP 3389 come previsto:

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 il servizio xrdp non è in ascolto, in una macchina virtuale Ubuntu riavviare il servizio come indicato di seguito:

sudo service xrdp restart

Controllare i log in /var/logThug nella VM Ubuntu per indicazioni sul perché il servizio non risponde. È possibile anche monitorare il syslog durante un tentativo di connessione Desktop remoto per visualizzare eventuali errori:

tail -f /var/log/syslog

Altre distribuzioni Linux, ad esempio Red Hat Enterprise Linux e SUSE, possono presentare modi diversi per riavviare i servizi e posizioni dei file di log alternative da controllare.

Se non si riceve alcuna risposta nel client di Desktop remoto e non viene visualizzato nessun evento nel log di sistema, questo comportamento indica che il traffico di Desktop remoto non riesce a raggiungere la macchina virtuale. Controllare le regole del gruppo di sicurezza di rete per assicurarsi che esista una regola che consenta TCP sulla porta 3389. Per altre informazioni, vedere Risolvere i problemi di connettività delle applicazioni in una macchina virtuale di Azure per Linux.

Passaggi successivi

Per altre informazioni sulla creazione e l'uso di chiavi SSH con macchine virtuali Linux, vedere Creare una coppia di chiavi SSH pubblica e privata per le macchine virtuali di Linux.

Per informazioni sull'uso di SSH da Windows, vedere Come usare SSH con Windows in Azure.