ecrans

x11vnc et tunnel ssh

Petit script pour se connecter à son serveur X à distance en utilisant vnc et un tunnel SSH

x11vnc, ssh y x11vnc, utiliser x11vnc, creation tunnel ssh vnc

Date de publication : 2009-06-23 10:00:08

Installation sur la machine distante

Il faut que la machine distante dispose d'un serveur ssh. Si ce n'est pas le cas, rien de plus simple :


root@home:~# aptitude install openssh-server

Ensuite il faut installer x11vnc qui permet de se connecter par vnc au serveur X de la machine :


root@home:~# aptitude install x11vnc

Installation sur la machine locale

Sur la machine locale je décide d'installer xvnc4viewer qui est la version de RealVnc de vncviewer :


root@home:~# aptitude install xvnc4viewer

Script de connexion à x11vnc par ssh

Voici le script que j'utilise il est largement inspiré du script de Karl Runge qui en connait beaucoup plus que moi sur le sujet :


#!/bin/sh
host=`echo $1 | awk -F: '{print $1}'`
port=5900
display=0
localport=$port-5900
#Définition de la commande qui lance x11vnc sur la machine distante
cmd="x11vnc -display :$display -localhost -rfbport $port"
#Lancement de x11vnc et création du tunnel ssh entre les deux machines
ssh -f -t -L $port:localhost:$port $host "$cmd"
#On temporise un peu pour être sur que tout est fonctionnel
sleep 2
#Lancement de vncviewer sur la machine locale
#Adaptez cette ligne si vous utilisez la version tightvnc de vncviewer
vncviewer -PreferredEncoding ZRLE -ZlibLevel 9 localhost:$localport

Ce script utilise l'encodage ZRLE et la compression gz pour accélérer l'affichage.

Installation du script

Si vous commencez à utiliser des scripts sous linux je vous conseil de mettre tous vos scripts dans le répertoire ~/bin et ensuite d'ajouter ce répertoire à la variable d'environnement $PATH (cf : Créer un répertoire pour ses scripts personnels).

Une fois que vous avez modifiez votre environnement bash il suffit de copier le script précédent dans le fichier ~/bin/x11vncssh :


pcr@home:~$ vi ~/bin/x11vncssh

On copie-colle le script et ensuite on sauvegarde en tapant :wq. Une fois que le fichier existe il suffit de le rendre exécutable avec la commande suivante :


pcr@home:~$ chmod u+x ~/bin/x11vncssh

Utilisation du script


pcr@home:~$ x11vncssh pcr@machinedistante.com

Ou encore :


pcr@home:~$ x11vncssh machinedistante.com

Image : olaerik

 
 

b1n@sp1n