Remote Desktop -- blue screen after login

You do not specify exactly which version of Ubuntu 18.04 you are running. If you have doe all the updates, you should be running Ubuntu 18.04.3.... You can check this by running the following command:

lsb_release -sd

If you are running Ubuntu 18.04.3, there is a known issue with xrdp package provided by Canonical. The xrdp package cannot install the xorgxrdp package because of failed dependencies. This is why you cannot connect remotely to your Ubuntu.

Best option - Install the new xorgxrdp-hwe-18.04 package

Install the new xorgxrdp package by issuing the following command:

sudo apt-get install xorgxrdp-hwe-18.04

This should fix your issue .

Dirty Quick Fix - Downgrade the xorgxserver package

We assume that you have already installed xRDP package and you want to fix it

sudo apt-get install xserver-xorg-core
sudo apt-get -y install xserver-xorg-input-all

More info on http://c-nergy.be/blog/?p=13390.

Better fix - use unofficial xrdp packages working with Ubuntu 18.04.3

Note: To use this option, please remove the xrdp package you have installed

sudo add-apt-repository ppa:martinx/xrdp-hwe-18.04
sudo apt-get update
sudo apt-get install xrdp xorgxrdp

More info at http://c-nergy.be/blog/?p=13455.

Other option - use a script to perform the installation for you

Note: To use this option, please remove the xrdp package you have installed.

To use Ubuntu repository xrdp packages, read instructions and download the script at http://c-nergy.be/blog/?p=13933.

To compile from source (easy way), read instructions and download the script at http://c-nergy.be/blog/?p=13663.


I have found an alternative solution:

apt-get install x2goserver

This will install x2go, which is opensource remote desktop server for Linux with x2goclient available both for Linux and Windows. Please note this software is way better then xrdp, but is also buggy. To use it, install for example mate desktop instead of linux default, default doesn't work with it yet:

sudo apt install tasksel
sudo tasksel install ubuntu-mate-desktop

When you create a connection with this windows client, you will need to set MATE desktop here:

enter image description here

It can work with some other desktops, but for default Ubuntu -- I was unable to make it work.

It has some bugs, which I can tolerate:

  • You might have issues with multiple keyboard layouts, to walk around this, you have to connect when EN layout is enabled on Windows, later you can switch to your national keyboard.

  • Clipboard is buggy and suddenly stops working. You solve it by reconnect.

  • Sometimes randomly it has keyboard glitches, but this doesn't happen very often, I can easily tolerate this.

  • If you use high DPI fonts on Windows, you may need to set this option to avoid your fonts look too big:

enter image description here

  • If you need it to connect automatically you will need ssh key, it can't store password. System is a bit buggy in that aspect, but I've found reliable solution: you install https://cygwin.com/, generate (ssh-keygen) and deploy (ssh-copy-id myself@myserver) key and then specify key in the connection settings (see pic above).

  • Sometimes, super rarely Windows client EXEcutable might give you crazy system errors, I can't remember the error message. But this message is somehow connected with Windows binaries compatibility. Super unobvious solution is to ...reboot Windows once.


The following worked for me on 20.04 (I think it applies to 18.04 too):

In /etc/xrdp/startwm.sh change #!/bin/sh to #!/bin/bash

I found this fix in this comment. A few more details from that comment:

My issue was caused by custom scripts in /etc/profile.d with syntax that /bin/sh doesn't like (e.g. function function_name { some; commands; }).

This comment was from a known issue on the bug.

There was another comment there mentioning another fix that did not apply to my situation:

This post seemed to fix it for me: http://catch22cats.blogspot.com/2018/05/xrdp-blank-screen-with-ubuntu-1804.html

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
. $HOME/.profile

By adding the above lines just before the test and exec in /etc/xrdp/startwm.sh, I also added the #!/bin/bash to the top of the file - also doing a chmod after you've changed the file is what some users might be forgetting.