Tested on Tumbleweed (Feb 2018) with xrdp-0.9.5-1.1.x86_64
.
zypper in xrdp
systemctl enable xrdp.service xrdp-sesman.service
Generate certificate:
cd /etc/xrdp
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365
In /etc/xrdp/xrdp.ini
:
certificate=/etc/xrdp/cert.pem
key_file=/etc/xrdp/key.pem
Change xrdp.ini
and sesman.ini
change so that we listen on 0.0.0.0
.
Also in sesman.ini
, in the [Globals]
section:
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh
We will drop a suitable startwm.sh
into our home directory.
In this case we have no .xinitrc
and we are normally using KDE
plasma desktop, but for xrdp we are going to provide an LXDE desktop.
In home directory:
cp .xinitrc.template .xinitrc.xrdp
add the following line (or similar) to it just before
exec WINDOWMANAGER ${1+"$@"}
export WINDOWMANAGER=/usr/bin/startlxde
Copy /etc/xrdp/startwm.sh
to home directory and edit it so that the
function wm_start()
sources .xinitrc.xrdp
wm_start()
{
. .xinitrc.xrdp
pre_start
xterm
post_start
}
Start the services:
systemctl start xrdp.service xrdp-sesman.service
Access via krdc
or rdesktop
should now work both locally and remotely.