How to enable Desktop Experience and enable RDP for a CentOs 7 VM on Microsoft Azure
[bing_translator]Normally when you provision a Linux VM on Microsoft Azure, it's provisioned for you on the CLI mode which most of the Linux fans are fund of it but in case you would like to use the desktop experience and RDP to the machine instead of SSH to it, you will need to follow these simple steps.
Connect to the VM using the SSH command tool like Putty.exe
In the upper putty window you can see that I'm connecting to this "VM centosrdp.cloudapp.net" on port 22 which is the default port of ssh, you will need to replace the value of the Host Name and Port with your own, to get this on Microsoft Azure , you will need to navigate to your machine's dashboard on the management portal on Azure, check the screenshot below and obtain the DNS name highlighted below.
After Connecting to the VM on the CLI, you will get prompted to enter your username and password, so go ahead and enter the same username and password you created to access your VM on Azure.
and then run this command to gain root privileges.
# sudo -s
Install EPEL and nux Desktop repository rpms.
# rpm -Uvh https://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
after this is successful, continue by installing the GNOME desktop to get the graphical user interface you desire
# yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
the installation process will take sometime depending on your internet speed, after the installation is done, run the following command to change the reboot from CLI to GUI.
# ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
the next step is to install the xrdp to be able to RDP on the VM
# yum -y install xrdp tigervnc-server
then start the xrdp service
# systemctl start xrdp.service
then test the xrdp service by running the following command, you should see the next screenshot
# netstat -antup | grep xrdp
now you can enable the xrdp service
# systemctl enable xrdp.service
And then add a port in the machine firewall if it was activated, if not then there is no need for the next two commands.
# firewall-cmd --permanent --zone=public --add-port=3389/tcp
# firewall-cmd --reload
Now that we have configured the CentOs 7 VM to have GUI and we have enabled the xrdp service on it, we have only one step left which is only adding an endpoint to the machine on Azure management portal. Go back to the Azure management portal and go to your VM ENDPOINTS Tab, check the screenshot below and then Add a new endpoint by clicking the Addbutton in the task bar on the lower end of the portal.
After clicking on the Add button, you will have the following form where you select from it RDP and choose keep the default values of the port and then click Ok , this will create a RDP endpoint where you can connect successfully to the machine, after the creation is done, you will see a new record added under your ENDPOINTS This is the view after the creation of the endpoint is succeeded
Now you can test the connection to your VM by clicking on connect button in the VM's dashboard task bar
which will download the RDP file to connect to this VM, click connect on it and then you will see this notification which you will have to click Ok
then the RDP window will open with the following screenshot
Enter your credentials here and then you will see the following prompt windows and viola you did it :)
Comments
- Anonymous
June 14, 2015
Hi k.moussa, I followed the exact steps and login to rdp, but i get a screen with a sad pc image saying:
Oh no! Something has gone wrong. A problem has occurred and the system can't recover. Please log out and try again.
What is missing here?
- Anonymous
July 11, 2015
I was able to follow the exact instructions above and reproduce Karishma's error "Oh no! Something has gone wrong..." I was able to get to the desktop after troubleshooting. I had a number of suspect causes, but I believe the fix was one (or both) of the following:
- sudo yum update
- sudo adduser <username> sudo passwd <username> (assign password for newly created user) ...I connected to my host via (x)RDP with the new user creds I had created. The desktop session connection was successful. (Note: I have not used the desktop extensively yet.)
Anonymous
July 19, 2015
hi , I followed the steps . all the steps worked except this one : netstat -antup | grep xrdp . I did not get any statements which you mentioned in the image . Secondly I am able to use Remote desktop for connecting the VM . Its showing the same error message. Can you suggest something ? Thanks GauravAnonymous
July 26, 2015
I had same problem with Gaurav.I checked the status about xrdp by : systemcrl | grep xrdp, the status was faild. I used followed command. chcon -t bin_t /usr/sbin/xrdp chcon -t bin_t /usr/sbin/xrdp-sesman and restart xrdp. systemctl restart xrdp.service Then I suceeded to connecting the VM.Anonymous
August 07, 2015
Outstanding article! Got me up and running in less that 15 minutes. Thank you kmossaAnonymous
October 02, 2015
Absolutely fantastic article! Begs the question: Why did i have to search Google to find this great msdn article after spending over half an hour poking around in the azure linux VM tutorials.Anonymous
February 26, 2016
I am able to connect the VM via RDP. But after I entered the username/pwd while creating the VM...I was prompted to enter password for the user "Administrator" (to create color managed device). What is the default password ? I never set any username "Administrator while creating.Anonymous
March 13, 2016
I'm trying to do this for a non-classic vm (resource manager). I installed xrdp and created an inbound rule for port 3389, but when I try to rdp it fails. Id there something I'm missing? Thanks.- Anonymous
April 20, 2016
For resource manager VMs you can create an inbound rule for RDP in the Network Security Group. - Anonymous
May 24, 2016
Hi Andrew, sorry for replying that late - was on a long business trip, are you able to reach the machine on the public IP or it rejects the connection?
- Anonymous
Anonymous
July 13, 2016
Thank you k.moussa.Anonymous
September 19, 2016
Hello,I follow this steps and it worksAnonymous
September 22, 2016
I flowed the same link but I am getting blank screen only after login.- Anonymous
September 23, 2016
Hi Muralidas,Just to make sure I got your point, you followed all the steps in the article and you are able to RDP to your linux VM and after you login with your credentials,it gives you a blank screen ? is this what happens ?
- Anonymous
Anonymous
December 29, 2016
many thanks for this, mine is working.I would like to ask on how secure the xrdp session is.I read here http://xrdp.sourceforge.net/documents/security/ we should create a rsakeys.ini , would you know if this is still necessary or maybe assist on how to do it- Anonymous
December 30, 2016
Thanks Bothwell, for securing access via xrdp session, try this blog post http://c-nergy.be/blog/?p=6020
- Anonymous
Anonymous
January 24, 2017
Hi Guys,How to we set static port connect to xrdp session, I mean where I can use same session when ever I connect to my xrdp.Thanks,Gulab PashaAnonymous
March 13, 2017
Thank you very much. It works for me.- Anonymous
March 14, 2017
You are more than welcome :)
- Anonymous
Anonymous
March 19, 2017
Why do you need to pull the package(s) from the nux desktop rather than the CentOS/EPEL repos?- Anonymous
April 06, 2017
Hi CJ, not for a specific reason but I prefer nux as it doesn't have any dependencies, it works right away versus EPEL that always gave me trouble.
- Anonymous