Maël, Zoé, les cousin(e)s et les amis...

Vous êtes ici : Accueil du site > Info’ et Logiciels Libres > [Ubuntu] Prendre la main à distance en utilisant VNC et SSH
Par : Cédric
Publié : 20 décembre 2009

[Ubuntu] Prendre la main à distance en utilisant VNC et SSH

Objectifs

Prise en main à distance (en utilisant VNC), sans aucune intervention de l’assisté, sur tous les postes Ubuntu que j’administre.

Cet article est surtout un aide-mémoire d’encapsulation d’une connexion VNC dans un tunnel SSH.

- Le poste client est mon PC, sur ubuntu.
- Le poste serveur est le PC sur lequel je veux prendre la main, sur ubuntu également.

Rappels

Sur le poste client, 2 clés ont été générées, une publique et l’autre, associée, est personnelle.

Mise en place du poste serveur

Installation des logiciels indispensables

$ sudo apt-get install openssh-server fail2ban x11vnc

fail2ban sert à protéger des attaques par force brute.

Ajout d’un utilisateur assistance

$ sudo adduser assistance

On prend soin de mettre un mot de passe, et on ajoute cet utilisateur aux administrateurs du poste.

$ sudo adduser assistance admin

Ouverture permanente du bureau à distance

Ouvrir le bureau à distance et définir un mot de passe, identique à l’utilisateur assistance (le mot de passe peut-être différent).

Mise en place des règles Nat de redirection des ports et utilisation de DynDNS pour avoir un DNS fixe

Je vais prendre l’exemple de la LiveBox.

Ouverture de l’administration à distance

L’intérêt est de pouvoir administrer via https, et en spécifiant un port, la livebox depuis internet.

Pour activer ce service, il faut se connecter à la livebox puis aller dans Serveurs Lan, puis Accès à la configuration de la Livebox par le réseau distant (via https), on met oui puis on spécifie un port.

Pour y accéder depuis internet, on fera : https://ip_box:port/

Problème, l’ip_box change toutes les 24h. On va donc mettre en place un service DynDNS afin d’avoir un nom de domaine permanent. La LiveBox permet d’activer ce service.

- Création d’un compte là : http://www.dyndns.com/
- Création d’un host, de type toto.homelinux.org

- Paramétrage de la livebox avec le compte dyndns et le host

Il faut aller dans la configuration avancée, puis réseau et dessous dyndns. Dans nom d’utilisateur, mettre son login dyndns, avec son mot de passe en dessous. Puis, il faut rentrer son host, genre toto.homelinux.org. Appliquer, c’est terminé.

- Ainsi, si je fais https://toto.homelinux.org:port/, j’accède à la livebox à travers d’internet.

Redirection du port 22 (ou un autre) sur le PC

Je vais dans les règles NAT (Serveurs Lan dans l’interface LiveBox) et je dirige les requêtes 22 sur la bonne IP locale (définie dans le DHCP).

Sur le poste client

Copie de la clé publique vers le serveur

$ ssh-copy-id -i assistance@IPSERVEUR

Sur le poste serveur

On ne permet plus au poste de recevoir une connexion distante avec un mot de passe :

$ sudo gedit /etc/ssh/sshd_config

On passe "password authentification" à no

Redemarrage de ssh

$ sudo /etc/init.d/ssh restart

Sur le poste client

Installation de xvnc4viewer

$ sudo apt-get -y install xvnc4viewer

Prise en main à distance

Ouverture d’un terminal :

- premier onglet : ssh -L 5901:localhost:5900 -XC IPSERVEUR(ou nom DYNDNS) —> ouverture du tunnel SSH
- deuxième onglet : vncviewer localhost:5901 —> lancement de VNC

Post-scriptum

- Avant de lancer l’assistance, désactiver les effets 3D sur le poste serveur, c’est la seule intervention de l’assisté...
- à la place de vncviewer ou x11vnc, on pourra utiliser vinagre qui est installé par défaut sur Ubuntu, en revanche, cela semble plus lent lors des manipulations.

612 Messages de forum