Remote Desktop til Linux-systemer
Tue 2019-01-08 SysAdm
Noen ganger er det greit å ha tilgang til det grafiske grensesnittet på et Linuxsystem, men hvordan?
Det finnes mange måter å løse problemet på: VNC, RDP, tunnellering av X og NoMachine. Det finnes sikkert flere måter å gjøre det på også, men disse er de jeg er kjent med.
Tunnellering av X er et mareritt, og jeg har egentlig aldri fått det til å fungere tilfredsstillende, så jeg har i stor grad gitt det opp. Jeg har heller egentlig ikke hatt det helt store behovet for grafisk tilgang til *nix-systemer tidligere, men siden jeg for tiden holder på med et RHEL-kurs og jeg ikke alltid har anledning til å sitte ved lab-maskinen, er en form for grafisk-orientert tilgang praktisk.
- VNC
VNC har lenge vært den eneste måten å få tilgang til et grafisk grensesnitt på *nix-systemer. Oppsett av en VNC-server er så enkelt som:
(Ubuntu/Debian-derivativer): sudo apt install tightvncserver
- Start serveren:
/usr/bin/tightvncserver
- Første gang den kjøres vil du bli bedt om å sette et passord for tilkobling, og serveren vil fortelle deg hvilken virtuell desktop som har blitt satt opp for bruk.
- Legg til TightVNC-server til systemd for automatisk start ved boot. For dette må vi opprette en ny service-fil for tjenesten, og den må ligge under mappen /etc/systemd/system/ og ende på .service.
- # vim /etc/systemd/system/tightvncserver.service
- Filen må da inneholde følgende:
[Unit]
Description=TightVNC remote desktop server
After=sshd.service[Service]
Type=dbus
ExecStart=/usr/bin/tightvncserver :1
User=youruser
Type=forking[Install]
WantedBy=multi-user.target
- Endre brukernavnet til den brukeren du ønsker å logge inn som (altså ditt eget brukernavn). Ikke angi root.
- Endre rettighetene på filen slik at den er eid av root:
# chown root:root /etc/systemd/system/tightvncserver.service
- Gjør filen kjørbar:
# chmod 0755 /etc/systemd/system/tightvncserver.service
- Test at scriptet funker før du starter på nytt:
# systemctl start tightvncserver
Du vil få en feilmelding om at det allerede kjører en VNC-server på :1 - det er fordi du startet den manuelt tidligere. Det at du får en feilmelding betyr at scriptet virker.
- Aktiver tjenesten til å starte ved oppstart:
# systemctl enable tightvncserver
- VNC-serveren vil nå starte ved systemstart. Det kan være en god ide å starte på nytt nå for å se at den faktisk gjør det.
- Installer TightVNC-klienten på klientmaskinen og logg inn.
- RDP
Remote Desktop Protocol ble utviklet av Microsoft for fjernadministrasjon av Windowssystemer. Protokollen har imidlertid blitt åpnet noe og implementasjoner finnes nå for Linux og andre UNIX-lignende systemer.
- Installasjon:
# apt install xrdp
- Oppsett: Nei.
- Kjør server:
# systemctl start xrdp.service
- Sjekk at serveren kjører:
# netstat -an | grep 3389
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
- Legg til server for autostart:
# systemctl enable xrdp
- Logg inn med en hvilken som helst remote desktop-klient. Merk at hvis brukeren du kobler til med mot den eksterne maskinen allerede er pålogget det grafiske grensesnittet, vil du ikke få tilgang. Logg derfor av ekstern bruker fra systemet eller start det eksterne systemet på nytt først.
- NoMachine
Kommer. Plutselig. Helt sant. :)