Sådan installeres og konfigureres VNC Remote Access til GNOME-skrivebordet på CentOS 7

Indledning

VNC eller Virtual Network Computing er en platformsuafhængig protokol, der gør det muligt for brugere at oprette forbindelse til et fjernt computersystem og bruge dets ressourcer fra en grafisk brugergrænseflade (GUI).

Det er som at fjernstyre et program: klientcomputerens tastetryk eller museklik overføres via netværket til fjerncomputeren. VNC giver også mulighed for at dele udklipsholdere mellem de to computere. Hvis du kommer fra en Microsoft Windows-serverbaggrund, er VNC meget lig Remote Desktop Service, bortset fra at det også er tilgængeligt for OS X, Linux og andre operativsystemer.

Som alt andet i netværksverdenen er VNC baseret på klient-server-modellen: VNC-serveren kører på en fjerncomputer – din Droplet – som betjener indkommende klientforespørgsler.

Mål

I denne vejledning vil vi lære at installere og konfigurere en VNC-server på CentOS 7. Vi vil installere TigerVNC-serveren, som er frit tilgængelig fra TigerVNC GitHub-repositoriet.

For at demonstrere, hvordan VNC fungerer, vil vi også installere GNOME-skrivebordet på din CentOS-server. Vi vil oprette to brugerkonti og konfigurere VNC-adgang for dem. Vi vil derefter teste deres forbindelse til fjernskrivebordet, og til sidst vil vi lære, hvordan vi sikrer fjernforbindelsen via en SSH-tunnel.

Forudsætninger

De kommandoer, pakker og filer, der vises i denne vejledning, blev testet på en minimal installation af CentOS 7. Vi vil anbefale følgende:

  • Distro: CentOS 7, 64-bit
  • Ressourcekrav: CentOS 7, 64-bit
  • En Droplet med 2 GB RAM
  • For at følge denne vejledning skal du bruge en sudo bruger. For at forstå, hvordan sudo privilegier fungerer, kan du henvise til denne DigitalOcean tutorial

Varsel: Du bør ikke køre nogen kommandoer, forespørgsler eller konfigurationer fra denne vejledning på en produktions-Linux-server. Dette kan resultere i sikkerhedsproblemer og nedetid.

Stræk 1 – Oprettelse af to brugerkonti

Først opretter vi to brugerkonti. Disse konti skal oprette fjernforbindelse til vores CentOS 7-server fra VNC-klienter.

  • joevnc
  • janevnc

Kør følgende kommando for at tilføje en brugerkonto til joevnc:

sudo useradd -c "User Joe Configured for VNC Access" joevnc

Kør derefter kommandoen passwd for at ændre joevnc’s adgangskode:

sudo passwd joevnc

Opdatet vil bede os om ny adgangskode. Når det er angivet, vil kontoen være klar til login:

Changing password for user joevnc.New password:Retype new password:passwd: all authentication tokens updated successfully.

Næst skal du oprette en konto til janevnc:

sudo useradd -c "User Jane Configured for VNC Access" janevnc

Sæt adgangskoden til janevnc:

sudo passwd janevnc

Stræk 2 – Installation af GNOME-skrivebordet

Nu skal vi installere GNOME-skrivebordet. GNOME er et samarbejde: Det er en samling af gratis og open source-software, som udgør et meget populært skrivebordsmiljø. Der findes andre skrivebordsmiljøer som KDE, men GNOME er mere populært. Vores VNC-brugere vil bruge GNOME til at interagere med serveren fra deres skrivebord:

sudo yum groupinstall -y "GNOME Desktop"

Afhængigt af hastigheden på dit netværk kan dette tage et par minutter.

Når pakkegruppen er installeret, skal du genstarte serveren:

sudo reboot

Fejlfinding – serveren sidder fast i opstartsfasen

Afhængigt af, hvordan din server er blevet konfigureret, kan maskinen, når den starter op, forblive i opstartsfasen og vise en meddelelse som denne:

Initial setup of CentOS Linux 7 (core)1) License information (Licence not accepted)Please make your choice from above :

For at komme forbi dette skal du trykke på 1 (licenslæsning), derefter på 2 (accepter licens) og derefter på C (for at fortsætte). Du skal muligvis trykke på C to eller flere gange. Billedet nedenfor viser dette:

Hvis du ikke ser denne fejl, og opstartsprocessen forløber glat, så er det kun endnu bedre – du kan gå videre til næste trin.

Strin 3 – Installation af TigerVNC Server

TigerVNC er den software, der gør det muligt for os at oprette en fjernskrivebordsforbindelse.

Installer Tiger VNC-serveren:

sudo yum install -y tigervnc-server

Dette bør vise output som det følgende:

Loaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile. . .Running transaction Installing : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1 Verifying : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1Installed: tigervnc-server.x86_64 0:1.2.80-0.30.20130314svn5065.el7Complete!

Nu har vi VNC-serveren og GNOME-skrivebordet installeret. Vi har også oprettet to brugerkonti til at oprette forbindelse via VNC.

Stræk 4 – Konfigurering af VNC-tjeneste til to klienter

VNC-serveren starter ikke automatisk, når den installeres første gang. Du kan kontrollere dette ved at køre følgende kommando:

sudo systemctl status vncserver@:.service

Opdatet vil se således ud:

vncserver@:.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled) Active: inactive (dead)

Du kan også køre denne kommando:

sudo systemctl is-enabled [email protected]

Dette bør vise output som dette:

disabled

Så hvorfor er den deaktiveret? Det skyldes, at hver bruger starter en separat instans af VNC-tjenestedæmonen. VNC kører med andre ord ikke som én enkelt proces, der betjener hver brugerforespørgsel. Hver bruger, der opretter forbindelse via VNC, skal starte en ny instans af dæmonen (eller systemadministratoren kan automatisere dette).

CentOS 7 bruger systemd-dæmonen til at igangsætte andre tjenester. Hver tjeneste, der kører nativt under systemd, har en tjenesteenhedsfil, der placeres under mappen /lib/systemd/system af yum-installatøren. Processer, der startes automatisk ved opstart, har et link til denne serviceenhedsfil, der er placeret i mappen /etc/systemd/system/.

I vores tilfælde blev der oprettet en generisk serviceenhedsfil i mappen /lib/systemd/system/, men der blev ikke lavet et link under /etc/systemd/system/. Hvis du vil teste dette, skal du køre følgende kommandoer:

sudo ls -l /lib/systemd/system/vnc*

Du bør se:

-rw-r--r--. 1 root root 1744 Jun 10 16:15 /lib/systemd/system/[email protected]

Kontroller derefter under /etc/systemd/system/:

sudo ls -l /etc/systemd/system/*.wants/vnc*

Denne findes ikke:

ls: cannot access /etc/systemd/system/*.wants/vnc*: No such file or directory

Så det første skridt er at starte to nye instanser af VNC-serveren for vores to brugere. For at gøre dette skal vi lave to kopier af den generiske VNC-tjenesteenhedsfil under /etc/system/system. I kodestumpen nedenfor laver du to kopier med to forskellige navne:

sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:4.servicesudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:5.service

Så hvorfor har vi tilføjet to tal (sammen med kolonet) i de kopierede filnavne?

Det kommer igen tilbage til konceptet med individuelle VNC-tjenester. VNC i sig selv kører på port 5900. Da hver bruger vil køre sin egen VNC-server, skal hver bruger oprette forbindelse via en separat port. Tilføjelsen af et tal i filnavnet fortæller VNC, at den pågældende tjeneste skal køre som en underport til 5900. Så i vores tilfælde vil joevnc’s VNC-tjeneste køre på port 5904 (5900 + 4) og janevnc’s VNC-tjeneste vil køre på 5905 (5900 + 5).

Dernæst redigeres serviceenhedsfilen for hver klient. Åbn filen /etc/systemd/system/vncserver@:4.service med editoren vi:

sudo vi /etc/systemd/system/vncserver@:4.service

Et kig på afsnittet “Quick HowTo” fortæller os, at vi allerede har gennemført det første trin. Nu skal vi gennemgå de resterende trin. Kommentarerne fortæller os også, at VNC er en ikke-troværdig forbindelse. Vi vil tale om dette senere.

For nu skal du redigere afsnittet i filen og erstatte forekomster af <USER> med joevnc. Tilføj også -geometry 1280x1024-klausulen i slutningen af ExecStart-parameteren. Dette fortæller blot VNC, hvilken skærmstørrelse den skal starte i. Du skal ændre to linjer i alt. Sådan skal den redigerede fil se ud (bemærk, at hele filen ikke er vist):

# The vncserver service unit file## Quick HowTo:# 1. Copy this file to /etc/systemd/system/vncserver@:<display>.service# 2. Edit <USER> and vncserver parameters appropriately# ("runuser -l <USER> -c /usr/bin/vncserver %i -arg1 -arg2")# 3. Run `systemctl daemon-reload`# 4. Run `systemctl enable vncserver@:<display>.service`#. . .Description=Remote desktop service (VNC)After=syslog.target network.targetType=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l joevnc -c "/usr/bin/vncserver %i -geometry 1280x1024" PIDFile=/home/joevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target

Spar filen, og afslut vi.

Åbn på samme måde filen /etc/systemd/system/vncserver@:5.service i vi, og lav ændringerne for brugeren janevnc:

sudo vi /etc/systemd/system/vncserver@:5.service

Her er kun afsnittet med ændringerne markeret:

Type=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l janevnc -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/janevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

Næst skal du køre følgende kommandoer for at genindlæse systemd-dæmonen og også for at sikre, at VNC starter op for to brugere ved boottidspunktet.

sudo systemctl daemon-reload

Aktiver den første serverinstans:

sudo systemctl enable vncserver@:4.service

Output:

ln -s '/etc/systemd/system/vncserver@:4.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:4.service'

Aktiver den anden serverinstans:

sudo systemctl enable vncserver@:5.service

Output:

ln -s '/etc/systemd/system/vncserver@:5.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:5.service'

Nu har du konfigureret to VNC-serverinstanser.

Stræk 5 – Konfiguration af din firewall

Næste trin er, at vi skal konfigurere firewallen til kun at tillade VNC-trafik gennem port 5904 og 5905. CentOS 7 bruger dynamisk firewall gennem firewalld-dæmonen; tjenesten behøver ikke at genstarte for at ændringerne kan træde i kraft.

Firewalld-tjenesten bør starte automatisk ved opstart af systemet, men det er altid godt at kontrollere:

sudo firewall-cmd --state

Dette bør vise:

running

Hvis tilstanden er “ikke kørende” af en eller anden grund, skal du udføre følgende kommando for at sikre dig, at den kører:

sudo systemctl start firewalld

Føj nu reglerne til portene 5904 og 5905 til:

sudo firewall-cmd --permanent --zone=public --add-port=5904-5905/tcp

Output:

success

Fyld firewallen op:

sudo firewall-cmd --reload

Output:

success

Stræk 6 – Indstilling af VNC-passwords

Vi er et skridt fra at se VNC i aktion. I dette trin skal brugerne indstille deres VNC-passwords. Det er ikke brugernes Linux-passwords, men passwords til at logge ind på VNC-sessionerne.

Åbn endnu en terminalforbindelse til CentOS 7-serveren, og log denne gang ind som joevnc.

ssh joevnc@your_server_ip

Udfør følgende kommando:

vncserver

Som vist i output nedenfor vil serveren bede joevnc om at oprette en VNC-adgangskode. Efter indtastning af adgangskoden viser programmet også, at der oprettes en række filer i brugerens hjemmemappe:

You will require a password to access your desktops.Password:Verify:xauth: file /home/joevnc/.Xauthority does not existNew 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1Creating default startup script /home/joevnc/.vnc/xstartupStarting applications specified in /home/joevnc/.vnc/xstartupLog file is /home/joevnc/.vnc/localhost.localdomain:1.log

Lad os kigge på linjen New 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1. localhost.localdomain var servernavnet i vores eksempel; i dit tilfælde kan det være et andet. Bemærk tallet efter servernavnet: (1, adskilt af et kolon). Det er ikke tallet i joevnc’s serviceenhedsfil (som var 4). Det skyldes, at det er visningsnummeret, som joevncs session vil køre på denne server, og ikke selve tjenestens portnummer (5904).

Næst åbner du en ny terminalsession og logger ind som janevnc. Også her skal du starte VNC-serveren og angive en adgangskode til janevnc:

vncserver

Du bør se et lignende output, der viser, at janevncs session vil køre på display 2.

Til sidst skal du genindlæse tjenesterne fra hovedterminalsessionen:

sudo systemctl daemon-reloadsudo systemctl restart vncserver@:4.servicesudo systemctl restart vncserver@:5.service

Stræk 7 – Oprettelse af forbindelse til fjernskriveborde med en VNC-klient

I denne vejledning antager vi, at brugerne joevnc og janevnc forsøger at oprette forbindelse til CentOS 7-serveren fra deres Windows-computere.

De skal hver især bruge en VNC-klient til Windows for at logge på fjernskrivebordet. Denne klient er ligesom en terminalklient som PuTTY, bortset fra at den viser grafisk output. Der findes forskellige VNC-klienter, men den vi vil bruge er RealVNC, som fås her. VNC Viewer til Mac OS X kan downloades på samme side, og Mac-versionen er ret lig Windows-versionen.

Når VNC Viewer startes, viser den en dialogboks som denne:

I feltet VNC Server skal du tilføje IP-adressen for din CentOS 7-server. Angiv portnummeret 5904 efter serverens IP-adresse, adskilt af et kolon (:). Vi har brugt 5904, fordi det er VNC-tjenesteporten for joevnc.

Vi har også besluttet at lade VNC Viewer vælge krypteringsmetoden. Denne indstilling vil kun kryptere den adgangskode, der sendes over netværket. Enhver efterfølgende kommunikation med serveren vil være ukrypteret. (Vi opstiller en sikker SSH-tunnel i det sidste trin.)

En advarselsmeddelelse viser netop dette:

Accepter advarslen for nu. Der vises en adgangskodeprompt:

Indtast joevncs VNC-adgangskode, som du indstillede tidligere.

Et nyt vindue åbnes og viser GNOME-skrivebordet for vores fjern-CentOS-server:

Accepter standardvelkomstmeddelelsen.

Nu kan janevnc starte et grafisk værktøj som GNOME-regnemaskinen:

Du kan lade denne skrivebordsforbindelse stå åben.

Nu kan janevnc også starte en anden VNC-session med CentOS-serveren. IP-adressen er den samme, og porten er 5905:

Når janevnc logger ind via VNC Viewer, vises et tomt skrivebord med en velkomstbesked, ligesom det blev vist for joevnc. Med andre ord deler de to brugere ikke skrivebordsinstanserne. joevncs skrivebord bør stadig vise lommeregneren.

For at lukke fjernskrivebordssessionen er det tilstrækkeligt blot at lukke vinduet. Dette stopper dog ikke brugerens VNC-tjeneste i baggrunden på serveren. Hvis tjenesten ikke er stoppet eller genstartet, og maskinen ikke har været genstartet, vil den samme skrivebordssession blive præsenteret ved næste logon.

Sluk VNC Viewer-vinduerne for joevnc og janevnc. Luk også deres terminalsessioner. Fra hovedterminalvinduet skal du kontrollere, om VNC-tjenesterne stadig kører:

sudo systemctl status vncserver@:4.service

Opdatet viser, at fjernskrivebordet stadig kører:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: active (running) since Sat 2014-11-01 12:06:49 EST; 58min ago Process: 2014 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

Kontroller den anden tjeneste:

sudo systemctl status vncserver@:5.service

Denne kører også:

vncserver@:5.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:5.service; enabled) Active: active (running) since Sat 2014-11-01 12:42:56 EST; 22min ago Process: 3748 ExecStart=/sbin/runuser -l janevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

Hvis du ville logge ind på joevncs skrivebord igen på dette tidspunkt, ville du se den samme lommeregner-app åben.

Dette giver nogle interessante udfordringer for systemadministratorer. Hvis du har en række brugere, der opretter forbindelse til serveren via VNC, skal du måske udtænke en måde at stoppe deres VNC-tjenester på, når de ikke længere er nødvendige. Dette kan spare nogle værdifulde systemressourcer.

Forsøgning af problemer – VNC-tjenesten styrter ned

Når du tester og leger med VNC, kan du nogle gange opdage, at tjenesten er styrtet ned og ikke kan genoprettes. Når du forsøger at kontrollere status:

sudo systemctl status vncserver@:4.service

Denne lange fejlmeddelelse kan komme frem:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: failed (Result: exit-code) since Fri 2014-11-07 00:02:38 EST; 2min 20s ago Process: 2221 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=2) Process: 1257 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

Ved forsøg på at starte tjenesten virker ikke:

sudo systemctl start vncserver@:4.service

Svigtet opstart:

Job for vncserver@:4.service failed. See 'systemctl status vncserver@:4.service' and 'journalctl -xn' for details.

Sædvanligvis er årsagen enkel nok. Kontroller /var/log/messages:

sudo tail /var/log/messages

Den relaterede fejl vil se således ud:

Nov 7 00:08:36 localhost runuser: Warning: localhost.localdomain:4 is taken because of /tmp/.X11-unix/X4Nov 7 00:08:36 localhost runuser: Remove this file if there is no X server localhost.localdomain:4Nov 7 00:08:36 localhost runuser: A VNC server is already running as :4Nov 7 00:08:36 localhost systemd: vncserver@:4.service: control process exited, code=exited status=2Nov 7 00:08:36 localhost systemd: Failed to start Remote desktop service (VNC).Nov 7 00:08:36 localhost systemd: Unit vncserver@:4.service entered failed state.Nov 7 00:08:36 localhost systemd: Failed to mark scope session-c3.scope as abandoned : Stale file handle

Løsningen er at slette filen under /tmp-mappen:

sudo rm -i /tmp/.X11-unix/X4

Output:

rm: remove socket '/tmp/.X11-unix/X4'? y

Start derefter VNC-tjenesten:

sudo systemctl start vncserver@:4.service

Generel fejlfinding

Og selv om det er relativt sjældent, kan du støde på andre fejl, når du arbejder med VNC. F.eks. kan skærmen på dit fjernskrivebord blive tom eller hænge, sessionen kan gå ned med en kryptisk fejlmeddelelse, VNC Viewer kan ikke oprette korrekt forbindelse eller sende kommandoer til GUI’en for at starte programmer osv.

Vi anbefaler, at du tjekker /var/log/messages-filen for at få en bedre forståelse. Til tider skal du måske genstarte din server, eller i ekstreme tilfælde genskabe VNC-tjenesten.

Systemressourcer kan også være en synder; du skal måske tilføje ekstra RAM til din Droplet osv.

Stræk 8 – Sikring af VNC-sessioner via SSH-tunneling

Så langt har både joevnc og janevnc haft adgang til deres fjernskriveborde via ukrypterede kanaler. Som vi så før, advarer VNC Viewer os om dette på forbindelsestidspunktet; kun adgangskoden er krypteret, når sessionerne begynder. Al efterfølgende netværkstrafik og dataoverførsel er åben for enhver, der kan opsnappe den i midten.

Om SSH Tunnelling

Det er her, at Secure Shell (SSH)-sessioner kan hjælpe. Med SSH kan VNC køre inden for rammerne af en SSH-krypteret session. Dette er kendt som tunnelling. VNC-trafikken er i realiteten en svinehund af SSH-protokollen, hvilket resulterer i, at al kommunikation med serveren er krypteret. Det kaldes tunnelling, fordi SSH yder wraparound-beskyttelse over VNC, og VNC kører som i en tunnel inden for SSH. SSH-tunnelling kan også bruges til andre protokoller som POP, X eller IMAP.

SSH-tunnelling fungerer med port forwarding, som grundlæggende er en metode til at oversætte adgang fra en bestemt port til en anden port på en anden maskine. Med port forwarding bliver et klientprogram, når det opretter forbindelse til port A, der kører på maskine A, på gennemsigtig vis videresendt til port B, der kører på maskine B. Klientprogrammet er ikke klar over denne oversættelse og tror, at det opretter forbindelse til den oprindelige port. Port forwarding er en af funktionerne i SSH-protokollen.

For mere detaljerede oplysninger om SSH-tunneling skal du læse denne vejledning.

I denne vejledning har vi konfigureret VNC til at køre på port 5904 (for joevnc) og 5905 (for janevnc).

Med port forwarding kan vi indstille vores lokale VNC-klient til at oprette forbindelse til port 5900 på den lokale klientcomputer, og denne kan mappes til port 5905 på fjernserveren. Dette er eksempel er for janevnc’s forbindelse, men du kan nemt følge de samme trin for andre klienter.

Når VNC-klientprogrammet starter, kan det peges på port 5900 på localhost, og vores port forwarding vil på gennemsigtig vis transportere det til port 5905 på fjernserveren.

Bemærk: Du skal starte et SSH-afsnit hver gang for at gøre forbindelsen sikker.

OS X

Åbn Terminal på din Mac.

Indtast følgende forbindelsesoplysninger, og sørg for at erstatte your_server_ip med din fjernservers IP-adresse:

ssh -L 5900:your_server_ip:5905 janevnc@your_server_ip -N

Indtast janevnc’s UNIX-adgangskode. Forbindelsen ser ud til at hænge; du kan holde den kørende, så længe du bruger fjernskrivebordet.

Spring nu videre til instruktionerne for VNC Viewer.

Windows

For at sikre janevncs VNC-session antager vi, at den lokale Windows-computer har PuTTY installeret. PuTTY er gratis og kan downloades fra her.

Hvis janevnc’s VNC- og terminalsessioner ikke allerede er lukket, skal du lukke dem nu.

Start PuTTY. På skærmbilledet for sessionen skal du sikre dig, at du angiver serverens IP-adresse og giver forbindelsen et beskrivende navn, og klik derefter på knappen Gem for at gemme forbindelsesoplysningerne. Bemærk, hvordan vi har angivet username@your_server_ip i feltet Hostname:

Næst skal du udvide SSH-menupunktet i venstre navigationsrude og vælge X11-elementet. Dette viser egenskaberne for X11-videresendelse for sessionen. Sørg for, at afkrydsningsfeltet for Enable X11 forwarding er markeret. Dette sikrer, at SSH krypterer X Windows-trafik, der flyder mellem serveren og klienten:

Slutteligt skal du vælge SSH > Tunneler. Indtast 5900 i feltet Kildeport. I feltet Destination skal du angive serverens navn eller IP-adresse efterfulgt af et kolon og VNC-portnummeret for den tiltænkte bruger. I vores tilfælde har vi angivet your_server_ip:5905.

Alternativt kan du bruge port 5902. 2’eren i dette tilfælde ville være visningsnummeret for janevnc (husk den meddelelse, der blev vist, da janevnc kørte kommandoen vncserver).

Klik på knappen Tilføj, og tilknytningen vil blive tilføjet under Videresendte porte. Det er her, vi tilføjer port forwarding til SSH-sessionen; når brugeren opretter forbindelse til localhost på port 5900, vil forbindelsen automatisk blive tunneleret via SSH til fjernserverens port 5905.

Gå tilbage til punkterne Sessioner, og gem sessionen for janevnc. Klik på knappen Åbn, og en ny terminalsession åbnes for janevnc. Log ind som janevnc med den relevante UNIX-adgangskode:

VNC Viewer

Næst skal du starte VNC Viewer igen. Denne gang skal du i VNC Server-adressen skrive <^> og lade VNC-serveren vælge krypteringsmetode:

Klik på knappen Connect.

Du vil stadig få dialogboksen, der advarer dig om en ukrypteret session, men denne gang kan du roligt ignorere den. VNC Viewer kender ikke til den port, den bliver videresendt til (den blev indstillet i den SSH-session, der lige er startet) og antager, at du forsøger at oprette forbindelse til den lokale maskine.

Accepterer du denne advarsel, vises den velkendte adgangskodeprompt. Indtast janevncs VNC-adgangskode for at få adgang til fjernskrivebordet.

Så hvordan ved du, at sessionen var krypteret? Hvis du tænker over det, havde vi indstillet port forwarding i SSH-sessionen. Hvis der ikke var oprettet en SSH-session, ville port forwarding ikke have fungeret. Hvis du lukker terminalvinduet og logger ud af PuTTY-sessionen og derefter forsøger at oprette forbindelse med VNC Viewer alene, ville et forbindelsesforsøg til localhost:5900 faktisk vise følgende fejlmeddelelse:

Så hvis localhost:5900-forbindelsen virker, kan du være sikker på, at forbindelsen er krypteret.

Husk, at du skal oprette SSH-forbindelsen først, hver gang du bruger VNC, for at sikre dig, at forbindelsen altid er krypteret.

Slutning

Accessing your CentOS Linux system from a GUI front end can make system administration much simpler. Du kan oprette forbindelse fra et hvilket som helst klientstyresystem og behøver ikke at være afhængig af webbaserede hostingkontrolpaneler. VNC har et meget mindre fodaftryk sammenlignet med de fleste kontrolpaneler.

Og selv om vi har vist, hvordan to almindelige brugere kan oprette forbindelse med deres VNC-klienter, er det næppe praktisk muligt i seriøse produktionsmiljøer. I virkeligheden vil brugerne have tilpassede programmer eller browsere til at få adgang til serveren. Kørsel af et antal VNC-tjenester for hver bruger skaber også en unødvendig belastning af systemressourcerne, for ikke at nævne de iboende risici, der er forbundet med det.

Hvis du beslutter dig for at installere og køre VNC på din produktions-Linux-server, anbefaler vi kraftigt, at du kun bruger det til administrative formål.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.