Share this post on:

Hey there! Thank you for your interest in this article! Today I’m going to write about how to connect remotely to your Linux Mint or Ubuntu machine from a Windows machine. I personally work on multiple computers and I need to remotely connect to one or another. Since I tried multiple solutions like VNC, none of them worked smoothly enough. Some keys are not mapped properly, there are huge delays and stuff like that.

Hence I wanted to setup a solution to connect to my Linux Mint machine from Windows with RDP. RDP works fine and is perfect for my scenario. But setting up an RDP server on Linux is not really plug and play so I’ll lay out the steps that I did to make it work here in this article.

XRDP to the rescue

In order to make it work, we’ll use XRDP on our host Linux machine. Just install it with this simple command:

sudo apt install xrdp 

After the installation, the XRDP service automatically starts on the standard RDP port and is ready to accept connections. But there are some further steps to take for it to work.

First of all, generate a PEM certificate and key with this command:

$ req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 865

The copy these two to your xrdp config folder and make them accessible:

$ sudo mkdir -p /etc/xrdp/ssl
$ sudo cp cert.pem /etc/xrdp/ssl
$ sudo cp key.pem /etc/xrdp/ssl

Then edit the XRDP config file /etc/xrdp/xrdp.ini to point to these new certificates:

certificate=/etc/xrdp/ssl/cert.pem
key_file=/etc/xrdp/ssl/key.pem

Now, in case you’re running Linux Mint with Cinnamon, you’ll need to run this command to make XRDP start the Cinnamon X Server:

$ echo "env -u SESSION_MANAGER -u DBUS_SESSION_BUS_ADDRESS cinnamon-session" > ~/.xsession

After this step, if you try to login to your machine via RDP, it will work but after you login you’ll notice there’s no response to mouse or keyboard events. So we need to add this CoreKeyboard and CorePointer to the Xorg configuration file /etc/X11/xrdp/xorg.conf like exemplified below:

Section "InputDevice"
    Identifier "xrdpKeyboard"
    Driver "xrdpkeyb"
    Option "CoreKeyboard"
EndSection

Section "InputDevice"
    Identifier "xrdpMouse"
    Driver "xrdpmouse"
    Option "CorePointer"
EndSection

This should fix the mouse and keyboard problem and now you can enjoy your fully remote desktop experience 😉

Testing it out

Right now, I’m on my Windows computer and I opened up my Remote Desktop connection. I connected to my Linux Mint machine whose name on the network is afivan-zen and after I accepted the certificate, I was presented with this login screen:

Then I logged in with my password and Voila! My Cinnamon desktop loaded just fine. Bear in mind that it will start a separate session and this will not end any other session you may (physically) have on your Linux machine.

There you go, you can now see that the whole piece is RUNNING! Hooray! 😄

Conclusion

I think having this RDP connection ready to be used on your Linux machine can be a game changer compared to other solutions like VNC which sometimes are glitchy. Still, at least in my case this connection is not super-accelerated so I cannot watch movies on the remote machine but I can code and play with my beloved Linux machine just fine. So for those of you who attempt this, hope it works good as well. Just let me know in comments if you spot any issues.

Thanks for reading, I hope you found this article useful and interesting. If you have any suggestions don’t hesitate to contact me. I also invite you subscribe to my BuyMeACoffee page. Any support is greatly appreciated! Cheers  😉

close

Hi there 👋
It’s nice to meet you.

Sign up to receive useful content in your inbox, every month.

We don’t spam! Read our privacy policy for more info.

Avatar afivan

Author: afivan

Enthusiast adventurer, software developer with a high sense of creativity, discipline and achievement. I like to travel, I like music and outdoor sports. Because I have a broken ligament, I prefer safer activities like running or biking. In a couple of years, my ambition is to become a good technical lead with entrepreneurial mindset. From a personal point of view, I’d like to establish my own family, so I’ll have lots of things to do, there’s never time to get bored 😂

Leave a Reply