X-windows og vnc over krypteret forbindelse vha. ssh

  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
  • strict warning: Only variables should be passed by reference in /var/www/clients/client612/web794/web/modules/inline/inline.module on line 418.
vnc

Fjernstyringsprogrammet vnc (http://www.uk.research.att.com/vnc/) er særdeles nyttigt hvis man skal arbejde hjemmefra på Linux/Windows, eller skal hjælpe andre med at fikse deres computer. Jeg har selv
fikset lyden på en maskine i Brasilien fra min computer her i Danmark!
Med modem går det dog ikke specielt hurtigt, men med en 256kbit op/ned æsel (adsl) forbindelse kan man godt arbejde hjemmefra. Jo hurtigere jo bedre.

Som hjemmearbejdende er man som regel interesseret i en krypteret forbindelse, og her kan ssh hjælpe. ssh har vel efterhånden erstattet rlogin/telnet på Linuxmater, og også sftp og scp er brugbare til
krypteret filoverførsel (se f.eks. http://gftp.seul.org/ ) En sshklient findes til Windows og Linux, og serveren sshd (Linux) er vistnok også porteret til Windows.

Vnc kører både fra og til et antal platforme: Windows, Linux, Mac, Java, WinCe, PalmOs (man tror det er løgn, men se billedet).

Klik på billederne for stor størrelse!

vnc_fra_palm_til_solaris_fra_www_wind-junkie_de
fig1

Den almindelige vnc-bruger har 2 problemer ved at arbejde hjemmefra; dels ønsker arbejdsgiveren vel en krypteret forbindelse, dels vil man ofte køre vnc-serveren på en maskine der ikke er direkte på internet.
Hvis min arbejdsmaskine f.eks. er tildelt ip-nummeret 192.168.1.101, som jo tilhører den serie af ip-numre der ikke eksisterer på internettet, kan jeg ikke tilgå den fra internet. Her kan ssh hjælpe.

netvaerks_oversigt
fig2

Opskriften:
-----------

I skal have en vnc-klient f.eks. fra http://www.uk.research.att.com/vnc/

LINUX:

Fra Jeres egen linuxmat skriver I

1)
ssh
-g-C-L 5901:192.168.1.101:5901123.45.67.89abcde

a) Tillad klienter at forbinde til videreviste porte
b) Brug kompression
c) Flag for at videresende porte:
d) send forespørgsler på maskinens (gatewayens) port 5901 videre
til maskinen '192.168.1.101's port 5901
e) log ind på maskinen '123.45.67.89', som er firmaets ip-nr.

WINDOWS:

Til Windås skal I hente programmet 'putty', som er en ssh-klient til dåse (se også på scp-programmet winscp, det er en slags grafisk ftp-klient til at drage-og-droppe filer mellem f.eks. arbejde og windusmaten.)

http://www.chiark.greenend.org.uk/~sgtatham/putty/
http://winscp.vse.cz/

Billederne illustrerer forhåbentlig fremgangsmåden (se også på billedernes titler), men hvis alt andet kikser kan man bruge følgende dos-kommando til at eksekvere putty:

putty.exe -ssh -l mitarbejdsbrugernavn
-L 5901:192.168.1.101:5901 123.45.67.89

KOGEBOG:
--------
Kør en af ovennænvte ssh-kommandoer, og vælg den maskine I ønsker at bruge (jeg har brugt '192.168.1.101' i mine eksempler).

Log på denne maskine og start en 'vncserver', f.eks. som vncserver -geometry 1152x864 -depth 8 :1
('dø' den senere med vncserver -kill :1)

'-depth 8' betyder at man vil nøjes med 8-bit farver, og deraf følgende båndbreddebesparelser.

I skal først vælge et kodeord med 'vncpasswd'-kommandoen, man kan vistnok ikke koble på vnc-serveren uden at have samme ip-nummer som Jeres hjemmemaskine nu har (ssh-serveren ved jo hvilket ip-nr der
har oprettet forbindelsen), men vælg nu alligevel noget sikkert.

Og nu til det interessante: hvis I ser på billedet 'fig5_putty_ssh_tunnel_indstillinger.gif' ser man at der står
'localhost:5901', dvs. vnc-klienten skal forbinde til din egen maskine (altså den du sidder på derhjemme). JA! Windåsen er altså blevet en vnc-server.

Det der sker er at den kommando I har kørt på Jeres egen maskine beder arbejds-broen udadtil (gatewayen), om at forespørgsler på port abcd dirigeres til '192.168.101.1:efgh' (port efgh på maskinen '192.168.1.101'). Når Jeres vncviewer forbinder til 'localhost:5901', er det til porten 'abcd', og så ved ssh-klienten på Jeres Windåsmat at den skal dirigere trafikken gennem en krypteret kanal til '123.45.67.89' (jobbet), og derfra spørge port 'efgh' på '192.168.1.101'. sshprogrammet ændrer altså portdirigeringen på både Jeres maskine og broen.

Portnummeret 5901 er skærm 1 på en Linuxmaskine, normalt sidder man og arbejder på skærm :0, altså den fysiske skærm. På Windows findes der kun :1 skærm, denne hedder :0. Desværre kan man ikke få adgang til den fysiske skærm på Linuxmaten medmindre man selv kompilerer vnc med en kodetilføjelse der er genvej til fra vnc's hjemmeside. Her virker det virkelig fikst på Windows, man forlader sit arbejde med kørende vnc-server, starter maskinen op derhjemme og tænder for sin vnc-klient/ssh-port-redirigering, slukker og kommer tilbage på arbejdet, alt sammen uden at man behøver at gemme brevet til bedstemor.

ssh kan også viderestille andre porte, f.eks. X-protokollen (baseadresse på port 6000), ftp, http, etc. etc. etc.

http://www.uk.research.att.com/vnc/sshvnc.html

- er der jeg har lært dette fra; jeg har forstået det således at al trafikken går over ssh-forbindelsen, men I må meget gerne selv tjekke det hvis I vil være sikre.

putty_hovedside
fig3

putty_brugernavn
fig4

putty_ssh_tunnel_indstillinger
fig5

nu_er_vi_logget_paa
fig6

vi_er_logget_paa_og_starter_en_vnc_server
fig7

vi_forbinder_med_vncklienten
fig8

her_er_1_blik_paa_vncskrivebordet
fig9

icewm_er_startet_og_jeg_koerer_fuldskaerm_tilstand
fig10

saa_rykker_vi_2_pacman
fig11

Henning Petersen