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:
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:
-
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.