Howto remote desktop linux: Difference between revisions

From Vidalinux Wiki
Jump to navigation Jump to search
Tag: Reverted
 
(7 intermediate revisions by the same user not shown)
Line 85: Line 85:
install docker:
install docker:
  https://wiki.vidalinux.org/index.php/Howto_docker
  https://wiki.vidalinux.org/index.php/Howto_docker
as root user download openusa docker-compose:
as root user download openuds docker-compose:
  mkdir ~/openuds && cd ~/openuds
  mkdir ~/openuds && cd ~/openuds
  wget https://raw.githubusercontent.com/vidalinux/docker/master/openuds/docker-compose/docker-compose.yml
  wget https://raw.githubusercontent.com/vidalinux/docker/master/openuds/docker-compose/docker-compose.yml
Line 95: Line 95:
  openssl genrsa -out example.com.key 3072
  openssl genrsa -out example.com.key 3072
create certificate csr:
create certificate csr:
  openssl req -new -key server.key -out example.com.csr
  openssl req -new -key example.com.key -out example.com.csr
fill the following blanks:
fill the following blanks:
  Country Name (2 letter code) []: '''US'''
  Country Name (2 letter code) []: '''US'''
Line 108: Line 108:
  A challenge password []: '''just press enter'''
  A challenge password []: '''just press enter'''
  An optional company name []: '''just press enter'''
  An optional company name []: '''just press enter'''
purchase a wildcard certificate for use in this service:
create the certificate:
  https://google.com
  openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt
edit docker compose and certificates environment settings:
create root certificate:
  - SSL_CRT=/etc/openuds/ssl/example.com.crt
  openssl req -x509 -new -nodes -key example.com.key -sha256 -out ca.pem
  - SSL_KEY=/etc/openuds/ssl/example.com.key
fill the following blanks:
  - SSL_CRT=/etc/openuds-tunnel/ssl/example.com.crt
Country Name (2 letter code) []: '''US'''
  - SSL_KEY=/etc/openuds-tunnel/ssl/example.com.key
State or Province Name (full name) []: '''Puerto Rico'''
  - SSL_CA=/etc/openuds-tunnel/ssl/ca.pem
Locality Name (eg, city) []: '''San Juan'''
  Organization Name (eg, company) []: '''Vidalinux.com Corp.'''
Organizational Unit Name (eg, section) []: '''Linux Consulting'''
  Common Name (eg, your name or your server's hostname) []: '''*.example.com'''
  Email Address []: '''myemail@example.com'''
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: '''just press enter'''
An optional company name []: '''just press enter'''
replace ovox.io with your domain:
  sed -i 's|ovox.io|example.com|g' docker-compose.yml
deploy containers using docker-compose:
deploy containers using docker-compose:
  cd ~/openuds
  cd ~/openuds
Line 228: Line 238:
   
   
  dbus-launch startxfce4 &
  dbus-launch startxfce4 &
edit ~/.vnc/xstartup for kde:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
  for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
  done
  unset f
fi
startplasma-x11 &
set xstartup permissions:
chmod +x ~/.vnc/xstartup
create systemd directory:
create systemd directory:
  mkdir -p ~/.config/systemd/user
  mkdir -p ~/.config/systemd/user
Line 252: Line 278:
add the ip address and hostname of your session to /etc/hosts:
add the ip address and hostname of your session to /etc/hosts:
  cat >> /etc/hosts << EOF
  cat >> /etc/hosts << EOF
  192.168.77.137 vnc.example.com
  192.168.77.124 vnc.example.com
  EOF
  EOF
connect to your vnc session using your browser:
connect to your vnc session using your browser:

Latest revision as of 14:51, 22 March 2024

install remmina client

install remmina on archlinux:

pacman -S remmina libvncserver spice-gtk freerdp

install remmina debian/ubuntu:

sudo apt -y install remmina remmina-plugin-rdp remmina-plugin-secret remmina-plugin-spice

gnome-remote-desktop

install gnome-remote-desktop on archlinux:

sudo pacman -S gnome-remote-desktop

install gnome-remote-desktop on almalinux8 or 9:

dnf -y install gnome-remote-desktop

install gnome-remote-desktop on debian or ubuntu:

sudo apt-get -y install gnome-remote-desktop

if you have a blackscreen when connecting to your linux desktop on archlinux do the following:

sudo pacman -R pulseaudio-equalizer pulseaudio-jack --noconfirm
sudo pacman -Sy pipewire-alsa pipewire-audio pipewire-docs pipewire-jack pipewire-media-session pipewire-pulse
sudo groupadd pipewire
sudo usermod -a -G pipewire $USER

thinlinc

install thinlinc-server on archlinux:

yay -G thinlinc-server
cd thinlinc-server
wget https://img.vidalinux.com/files/thinlinc-server-url.patch
patch PKGBUILD < thinlinc-server-url.patch
makepkg -si

install thinlinc-client on archlinux:

yay -S thinlinc

install thinlinc-server on other linux distros:

wget https://www.cendio.com/downloads/server/tl-4.14.0-server.zip

extract the bundle and start the installation program as follows:

./install-server

to setup the server run the following command:

/opt/thinlinc/sbin/tl-setup

enter web nterface for administration:

https://machine-ip-address:1010/status/sessions

thinlinc-client for linux .rpm:

dnf -y install https://www.cendio.com/downloads/clients/thinlinc-client-4.14.0-2324.x86_64.rpm

thinlinc-client for linux .deb:

dpkg -i https://www.cendio.com/downloads/clients/thinlinc-client_4.14.0-2324_amd64.deb

thinlinc-client for debian arm:

dpkg -i https://www.cendio.com/downloads/clients/thinlinc-client_4.14.0-2324_armhf.deb

thinlinc-client for windows:

https://www.cendio.com/downloads/clients/tl-4.14.0-client-windows.exe

thinlinc-client for mac:

https://www.cendio.com/downloads/clients/tl-4.14.0_2324-client-macos.iso

x2go

install x2goserver on archlinux:

gpg --recv-keys F4A7678C9C6B0B2B
git clone https://aur.archlinux.org/nx.git
cd nx
makepkg -si 
yay -S x2goserver

install x2goclient on archlinux:

yay -S x2goclient

install x2goserver on debian or ubuntu:

sudo apt update
sudo apt -y install x2goserver x2goserver-xsession

install x2goclient on debian or ubuntu:

sudo apt -y install x2goclient

install x2goserver on almalinux 8 or 9:

dnf -y install yum-utils 
dnf config-manager --set-enabled crb
dnf -y install epel-release
dnf -y install epel-next-release
dnf -y install x2goserver

install x2goclient on almalinux8 or 9:

dnf -y install x2goclient

start and enable x2goserver on host:

systemctl enable x2goserver
systemctl start x2goserver

install x2goclient for windows:

http://code.x2go.org/releases/X2GoClient_latest_mswin32-setup.exe

install x2goclient for mac:

http://code.x2go.org/releases/X2GoClient_latest_macosx_10_13.dmg

to login to KDE on client configure session type custom desktop:

Command: startplasma-x11

fix errors with sqlite:

chown root:x2gouser /usr/lib/x2go/libx2go-server-db-sqlite3-wrapper
x2godbadmin --createdb
chmod g+s /usr/lib/x2go/libx2go-server-db-sqlite3-wrapper

openuds

install docker:

https://wiki.vidalinux.org/index.php/Howto_docker

as root user download openuds docker-compose:

mkdir ~/openuds && cd ~/openuds
wget https://raw.githubusercontent.com/vidalinux/docker/master/openuds/docker-compose/docker-compose.yml

pull containers images using docker-compose:

docker-compose pull

create rsa key:

mkdir ./certs/
cd ./certs
openssl genrsa -out example.com.key 3072

create certificate csr:

openssl req -new -key example.com.key -out example.com.csr

fill the following blanks:

Country Name (2 letter code) []: US
State or Province Name (full name) []: Puerto Rico
Locality Name (eg, city) []: San Juan
Organization Name (eg, company) []: Vidalinux.com Corp.
Organizational Unit Name (eg, section) []: Linux Consulting
Common Name (eg, your name or your server's hostname) []: *.example.com
Email Address []: myemail@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: just press enter
An optional company name []: just press enter

create the certificate:

openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt

create root certificate:

openssl req -x509 -new -nodes -key example.com.key -sha256 -out ca.pem

fill the following blanks:

Country Name (2 letter code) []: US
State or Province Name (full name) []: Puerto Rico
Locality Name (eg, city) []: San Juan
Organization Name (eg, company) []: Vidalinux.com Corp.
Organizational Unit Name (eg, section) []: Linux Consulting
Common Name (eg, your name or your server's hostname) []: *.example.com
Email Address []: myemail@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: just press enter
An optional company name []: just press enter

replace ovox.io with your domain:

sed -i 's|ovox.io|example.com|g' docker-compose.yml

deploy containers using docker-compose:

cd ~/openuds
docker-compose up -d

watch container logs for errors:

docker-compose logs -f

add the following to your /etc/hosts:

cat >> /etc/hosts << EOF
# openuds.example.com
10.50.70.2      dbuds.example.com
10.50.70.3      serveruds.example.com
10.50.70.4      tunneluds.example.com
EOF

enter openuds web interface username/password: root/udsmam0 :

https://serveruds.example.com

kasmvnc

as nornmal user clone the following git repo:

cd ~/
git clone https://github.com/vidalinux/AUR.git

install perl-hash-merge-simple:

cd ~/AUR/perl-hash-merge-simple/
makepkg -si

install kasmvncserver:

cd ~/AUR/kasmvncserver-bin
makepkg -si

execute the following command to configure vncserver:

vncserver

select create a new user with write access:

1

enter the username of your current user and set password:

linux

on desktop environment select manually edit xstartup:

2

edit ~/.vnc/kasmvnc.yaml and add the following:

desktop:
  resolution:
    width: 1024
    height: 768
  allow_resize: true
  pixel_depth: 24
  gpu:
    hw3d: false
    drinode: /dev/dri/renderD128

logging:
  log_writer_name: all
  log_dest: logfile
  level: 100 

network:
  protocol: http
  interface: 0.0.0.0
  websocket_port: auto
  use_ipv4: true
  use_ipv6: true
  udp:
    public_ip: auto
    port: auto
    stun_server: auto
  ssl:
    pem_certificate: /opt/ssl/certs/server.crt
    pem_key: /opt/ssl/certs/server.key
    require_ssl: true

create rsa key:

sudo mkdir /opt/ssl/certs/ -p
sudo chmod -R 777 /opt/ssl
cd /opt/ssl/certs
openssl genrsa -out server.key 3072

create certificate csr:

openssl req -new -key server.key -out server.csr

fill the following blanks:

Country Name (2 letter code) []: US
State or Province Name (full name) []: Puerto Rico
Locality Name (eg, city) []: San Juan
Organization Name (eg, company) []: Vidalinux.com Corp.
Organizational Unit Name (eg, section) []: Linux Consulting
Common Name (eg, your name or your server's hostname) []: vnc.example.com
Email Address []: myemail@gmail.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: just press enter
An optional company name []: just press enter

create the certificate:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

create root certificate:

openssl req -x509 -new -nodes -key server.key -sha256 -out ca.pem

fill the following blanks:

Country Name (2 letter code) []: US
State or Province Name (full name) []: Puerto Rico
Locality Name (eg, city) []: San Juan
Organization Name (eg, company) []: Vidalinux.com Corp.
Organizational Unit Name (eg, section) []: Linux Consulting
Common Name (eg, your name or your server's hostname) []: vnc.example.com
Email Address []: myemail@gmail.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: just press enter
An optional company name []: just press enter

edit ~/.vnc/xstartup for xfce:

#!/bin/sh 

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

dbus-launch startxfce4 &

edit ~/.vnc/xstartup for kde:

#!/bin/sh 

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

startplasma-x11 &

set xstartup permissions:

chmod +x ~/.vnc/xstartup

create systemd directory:

mkdir -p ~/.config/systemd/user

configure systemd service:

cat > ~/.config/systemd/user/vncserver\@\:2.service << EOF
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/bin/vncserver %i
ExecStop=/usr/bin/vncserver -kill %i

[Install]
WantedBy=default.target
EOF

enable service:

systemctl --user enable vncserver@:2.service

start service:

systemctl --user start vncserver@:2.service

login as root on your computer:

sudo su -

add the ip address and hostname of your session to /etc/hosts:

cat >> /etc/hosts << EOF
192.168.77.124 vnc.example.com
EOF

connect to your vnc session using your browser:

https://vnc.example.com:8445

nomachine

install nomachine on archlinux:

git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

install nomachine:

yay -S nomachine

edit file "/usr/NX/etc/server.cfg", set "StartNXDaemon" to "Automatic":

StartNXDaemon Automatic

then restart nxserver service:

systemctl restart nxserver

from another computer install nomachine:

  • for windows:
https://download.nomachine.com/download/8.8/Windows/nomachine_8.8.1_1_x64.exe
  • for mac:
https://download.nomachine.com/download/8.8/MacOSX/nomachine_8.8.1_1.dmg
  • for linux .rpm:
https://download.nomachine.com/download/8.8/Linux/nomachine_8.8.1_1_x86_64.rpm
  • for linux .deb:
https://download.nomachine.com/download/8.8/Linux/nomachine_8.8.1_1_amd64.deb

to fix nxplayer for linux crashing when connecting to another machine edit this key in $HOME/.nx/config/player.cfg:

<option key="Enable hardware accelerated decoding" value="disabled" />

hoptodesk

install hoptodesk on archlinux:

yay -G hoptodesk-bin
cd hoptodesk-bin
makepkg -si

if you got an error with sha256sum do the following:

sha256sum hoptodesk-1.40.6.deb

edit PKGBUILD

sha256sums=('394e93e365b755ed44f8ff6837bbc2e8d76c315132f74076cf1e988bcb2bdb0b'
           '8486a10c4393cee1c25392769ddd3b2d6c242d6ec7928e1414efff7dfb2f07ef')

then run makepkg again:

makepkg -si

install hoptodesk on almalinux 8 or 9:

dnf -y install https://www.hoptodesk.com/hoptodesk.rpm

install hoptodesk on debian or ubuntu:

wget https://www.hoptodesk.com/hoptodesk.deb
apt install -f hoptodesk.deb

install hoptodesk on windows:

https://www.hoptodesk.com/hoptodesk.msix

install hoptodesk on mac intel:

https://www.hoptodesk.com/HopToDesk.dmg

install hoptodesk on mac silicon:

https://www.hoptodesk.com/HopToDesk-silicon.dmg

install hopdesk on debian arm:

dpkg -i https://www.hoptodesk.com/hoptodesk-rpi.deb

rustdesk

intall rustdesk on archlinux:

yay -S rustdesk-bin

install rustdesk on almalinux8 or 9:

dnf -y install https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-0.x86_64.rpm

install rustdesk on debian or ubuntu:

wget https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-x86_64.deb
sudo apt install -f rustdesk-1.2.2-x86_64.deb

install rustdesk on debian arm:

https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-aarch64.deb

install rustdesk on windows:

https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-x86_64.exe

install rustdesk on mac:

https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-x86_64.dmg

references