Installera och konfigurera xrdp för att använda Fjärrskrivbord med Ubuntu

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️

När det är nytt för Linux eller för snabba felsökningsscenarier kan användningen av fjärrskrivbord vara enklare än SSH-åtkomst (Secure Shell). Den här artikeln beskriver hur du installerar och konfigurerar en skrivbordsmiljö (xfce) och fjärrskrivbord (xrdp) för den virtuella Linux-dator som kör Ubuntu.

Artikeln skrevs och testades med hjälp av en virtuell Ubuntu 18.04-dator.

Anteckning

Om du använder Fjärrskrivbord via Internet introduceras märkbar "fördröjning" (svarstid för indata) jämfört med lokal skrivbordsanvändning. Detta kan påverkas av flera faktorer, inklusive lokal internethastighet och avstånd från det datacenter där den virtuella datorn finns. Den här fördröjningen återspeglar vanligtvis inte själva den virtuella datorns prestanda.

Förutsättningar

Den här artikeln kräver en befintlig virtuell Ubuntu 18.04 LTS- eller Ubuntu 20.04 LTS-dator i Azure. Om du behöver skapa en virtuell dator använder du någon av följande metoder:

Installera en skrivbordsmiljö på din virtuella Linux-dator

De flesta virtuella Linux-datorer i Azure har ingen skrivbordsmiljö installerad som standard. Virtuella Linux-datorer hanteras ofta med SSH-anslutningar i stället för en skrivbordsmiljö, men det finns flera skrivbordsmiljöer som du kan välja att installera. Beroende på ditt val av skrivbordsmiljö förbrukar den upp till 2 GB diskutrymme och det tar upp till tio minuter att både installera och konfigurera alla nödvändiga paket.

I följande exempel installeras den lätta xfce4-skrivbordsmiljön på en virtuell Ubuntu-dator. Kommandon för andra distributioner varierar något (använd yum för att installera på Red Hat Enterprise Linux och konfigurera lämpliga selinux regler, eller använda zypper för att installera på SUSE, till exempel).

Först SSH till den virtuella datorn. Följande exempel ansluter till den virtuella datorn med namnet myvm.westus.cloudapp.azure.com med användarnamnet för azureuser. Använd dina egna värden:

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

Om du använder Windows och behöver mer information om hur du använder SSH kan du läsa Så här använder du SSH-nycklar med Windows.

Installera sedan xfce med :apt

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

Installera och konfigurera en fjärrskrivbordsserver

Nu när du har installerat en skrivbordsmiljö konfigurerar du en fjärrskrivbordstjänst för att lyssna efter inkommande fjärråtkomstanslutningar. xrdp är en öppen källkod RDP-server (Remote Desktop Protocol) som är tillgänglig på de flesta Linux-distributioner och fungerar bra med xfce. Installera xrdp på din virtuella Ubuntu-dator på följande sätt:

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

På Ubuntu 20 måste du ge certifikatåtkomst till en xrdp-användare:

sudo adduser xrdp ssl-cert

Tala om för xrdp vilken skrivbordsmiljö som ska användas när du startar sessionen. Konfigurera xrdp att använda xfce som skrivbordsmiljö på följande sätt:

echo xfce4-session >~/.xsession

Starta om xrdp-tjänsten för att ändringarna ska börja gälla på följande sätt:

sudo service xrdp restart

Ange ett lösenord för ett lokalt användarkonto

Om du skapade ett lösenord för ditt användarkonto när du skapade den virtuella datorn hoppar du över det här steget. Om du bara använder SSH-nyckelautentisering och inte har angett något lösenord för det lokala kontot anger du ett lösenord innan du använder xrdp för att logga in på den virtuella datorn. xrdp kan inte acceptera SSH-nycklar för autentisering. I följande exempel anges ett lösenord för användarkontot azureuser:

sudo passwd azureuser

Anteckning

Om du anger ett lösenord uppdateras inte SSHD-konfigurationen för att tillåta lösenordsinloggningar om det inte gör det för närvarande. Ur ett säkerhetsperspektiv kanske du vill ansluta till den virtuella datorn med en SSH-tunnel med hjälp av nyckelbaserad autentisering och sedan ansluta till xrdp. I så fall hoppar du över följande steg när du skapar en regel för nätverkssäkerhetsgrupp för att tillåta fjärrskrivbordstrafik.

Skapa en regel för nätverkssäkerhetsgrupp för fjärrskrivbordstrafik

För att fjärrskrivbordstrafik ska kunna nå din virtuella Linux-dator måste en regel för nätverkssäkerhetsgrupp skapas som gör att TCP på port 3389 kan nå den virtuella datorn. Mer information om regler för nätverkssäkerhetsgrupper finns i Vad är en nätverkssäkerhetsgrupp? Du kan också använda Azure Portal för att skapa en regel för nätverkssäkerhetsgrupp.

I följande exempel skapas en regel för nätverkssäkerhetsgrupp med az vm open-port på port 3389. Öppna följande regel för nätverkssäkerhetsgrupp från Azure CLI, inte SSH-sessionen till den virtuella datorn:

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

Ansluta din virtuella Linux-dator med en fjärrskrivbordsklient

Öppna din lokala fjärrskrivbordsklient och anslut till IP-adressen eller DNS-namnet på din virtuella Linux-dator.

Skärmbild av fjärrskrivbordsklienten.

Ange användarnamnet och lösenordet för användarkontot på den virtuella datorn på följande sätt:

Skärmbild av xrdp-inloggningsskärmen.

När du har autentiserats läses xfce-skrivbordsmiljön in och ser ut ungefär som i följande exempel:

xfce-skrivbordsmiljö via xrdp

Om din lokala RDP-klient använder autentisering på nätverksnivå (NLA) kan du behöva inaktivera anslutningsinställningen. XRDP stöder för närvarande inte NLA. Du kan också titta på alternativa RDP-lösningar som stöder NLA, till exempel FreeRDP.

Felsöka

Om du inte kan ansluta till din virtuella Linux-dator med en fjärrskrivbordsklient använder netstat du den virtuella Linux-datorn för att kontrollera att den virtuella datorn lyssnar efter RDP-anslutningar på följande sätt:

sudo netstat -plnt | grep rdp

I följande exempel visas den virtuella datorn som lyssnar på TCP-port 3389 som förväntat:

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

Om xrdp-sesman-tjänsten inte lyssnar startar du om tjänsten på en virtuell Ubuntu-dator på följande sätt:

sudo service xrdp restart

Granska loggarna i /var/logga in på din virtuella Ubuntu-dator för att få information om varför tjänsten kanske inte svarar. Du kan också övervaka syslog under ett fjärrskrivbordsanslutningsförsök för att visa eventuella fel:

tail -f /var/log/syslog

Andra Linux-distributioner som Red Hat Enterprise Linux och SUSE kan ha olika sätt att starta om tjänster och alternativa loggfilsplatser att granska.

Om du inte får något svar i fjärrskrivbordsklienten och inte ser några händelser i systemloggen indikerar det här beteendet att fjärrskrivbordstrafiken inte kan nå den virtuella datorn. Granska reglerna för nätverkssäkerhetsgruppen för att se till att du har en regel som tillåter TCP på port 3389. Mer information finns i Felsöka anslutningsproblem för program.

Nästa steg

Mer information om hur du skapar och använder SSH-nycklar med virtuella Linux-datorer finns i Skapa SSH-nycklar för virtuella Linux-datorer i Azure.

Information om hur du använder SSH från Windows finns i Så här använder du SSH-nycklar med Windows.