Prendre le contrôle de son PC de travail depuis la maison en mode graphique avec VNC et SSH

Je peux déjà gérer les documents qui sont sur le pc-serveur de l’école grâce à SSH (voir ce billet). Mais cela ne me suffit pas, je veux pouvoir utiliser le pc de direction de l’école, sans aucune restriction, depuis chez moi, comme si j’étais physiquement au bureau, imprimer mes documents sur l’imprimante de l’école, faire les mises-à-jour, gérer le réseau, utiliser les diverses applications  etc.

Cela m’a demandé un peu de lecture, car si la solution est simple, elle est noyée dans de nombreux documents très (trop) complets qui m’ont perdu. C’est grâce aux conseils d’un internaute du forum ubuntu-fr.org (Tamarou) que j’ai compris la simplicité de la démarche.

Ceci utilise vnc (virtual network computing). Il serait possible de contrôler un pc distant avec uniquement vnc (ce que nous verrons pour commencer), cependant son niveau de sécurité est insuffisant et il est préférable de l’encapsuler dans du SSH.

Accéder et contrôler un pc distant avec VNC seul :

(déconseillé, mais à expérimenter temporairement pour vérifier que ça fonctionne)

Ubuntu est déjà équipé avec vino (qui gère la partie serveur, le pc à contrôler) vinagre (pour le client, mais assez moyen à l’usage) ou encore TSC- Terminal Server Client (qui est beaucoup plus productif d’après mon expérience). Cependant, TSC n’utilise plus le protocole vnc par défaut et il faut l’ajouter en cliquant sur ce lien apt : xvnc4viewer.

Pour utiliser vnc seul, il suffit d’ouvrir le port 5900 de son firewall et de son routeur.

Sur le serveur,

cliquer sur « Système »-> »préférences »-> »Bureau à distance »

Cochez les cases pour autoriser « d’autres utilisateurs à voir votre bureau » et « d’autres utilisateurs à contrôler votre bureau »

Décochez « chaque accès doit être confirmé », sinon quelqu’un doit rester à coté du serveur et on ne recherche pas vraiment cela dans le cas présent

Cochez « l’utilisateur doit saisir ce mot de passe » et choisissez un mot de passe de 8 caractères vraiment complexe, style « M4cy!9@Ix »

Choisissez l’affichage de l’icône selon votre intérêt. Personnellement, dans ce cas, je choisis « N’afficher une icône que lorsque quelqu’un est connecté », mais si on cherche à surveiller ses ados, on fera autrement.

Sur le client,

Cliquez sur « Applications »-> »internet »-> »Terminal Serveur Client »

Il y a des onglets pour régler les options à votre convenance.

Dans la case ordinateur, donner l’adresse IP du serveur, ou le nom de domaine DynDNS ou autre si comme moi vous subissez une adresse dynamique. (on peut avoir besoin de préciser le port dans certains cas,  Mon-IP:5900)

Dans la case protocole, choisissez VNC et cliquez sur « se connecter ».

Le password choisi sur le serveur est demandé.

Le bureau distant s’ouvre selon les options choisies.

C’est simple et fonctionnel, mais bien moins sûr que du ssh, alors comment ajouter la sécurité au prix d’une manipilation de plus ?

Accéder et contrôler un pc distant avec VNC et SSH :

(la documentation demande à ce que l’on edite le fichier de configuration de ssh en tapant dans un terminal
sudo gedit /etc/ssh/sshd_config
et de créez  la ligne suivante :
GatewayPorts yes
Enregistrez
Je ne suis pas sûr de l’importance de cette phase, mais je l’ai effectuée, n’hésitez pas à m’éclairer.)

Il faut utiliser pour cela la ligne de commande. Ouvrez un terminal sur le client et recopiez cette ligne en l’adaptant :

ssh user@server.net -L5901:localhost:5900

Où vous remplacez « user » par l’identifiant que vous utilisez sur le pc à contrôler, « serveur.net » soit par l’adresse IP du pc à contrôler, soit par le nom de domaine style dynDNS choisi (exemple blablabla.homelinux.net) et 5901 par le port que vous voulez et que vous n’utilisez pas déjà (5901 est un bon choix).

Cette ligne va faire passer vnc (qui utilise par défaut le port 5900), non pas par le port 5900, mais par SSH (port 22 habituellement) et au niveau local va lui attribuer le port 5901 pour qu’on puisse le trouver à la maison.

Le mot de passe administration système du pc à contrôler est demandé (celui qu’on utilise habituellement pour administrer le pc à contrôler)

ATTENTION : ce terminal doit resté ouvert tout le temps où la prise de contrôle est nécessaire, car le processus SSH se fermera avec lui.

Pour trouver mon bureau distant du travail, à la maison, je vais demander au client VNC d’ouvrir l’adresse locale sur le port 5901.

Pour cela, j’ouvre un second terminal (ou un second onglet du premier terminal) et je recopie cette ligne :

xvnc4viewer 127.0.0.1 :5901

Un mot de passe VNC est demandé. Il s’agit de celui qui a été choisi pour protéger VNC (« M4cy!9@Ix »).

Vous contrôlez le pc du travail, depuis votre canapé \o/.

Les « maternelles » parlent des logiciels libres à l’école

Un tout petit billet pour relayer l’intelligent propos d’Emma Rota sur les logiciels libres à l’école, dans le cadre de l’émission « les maternelles » le 17 mars 2010 sur france5.

Lien texte ici : Emma Rota le 17 mars 2010

et vidéo ci-dessous au format libre ogg, lisible directement par les navigateurs modernes (c’est à dire presque tous sauf IE) :

il suffit de cliquer sur l’image

Présentation de Pranav Mistry, ce que l’open-source propose pour demain.

Une petite vidéo (en flash désolé) de ce que l’open-source nous réserve pour les années à venir. Plutôt alléchant, non ?

Et pour ceux qui n’aiment pas le flash (à raison je pense), lien direct en mp4 ici.