Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Aider qui en a besoin

Il n'est pas rare d'avoir des amis ou de la famille qui a un petit pépin sur son ordinateur. Cela est d'autant plus fréquent lorsque ces derniers débutent avec le logiciel libre. Heureusement, vous pouvez leur filer un coup de main, même si vous êtes à 100km de chez eux.

Cependant, les méthodes habituelles nécessitent que les personnes ayant un souci sur leur pc ouvrent les ports de leur routeur/pare-feu pour vous donner accès à leur machine. Bien entendu, cette idée est aberrante puisqu'ils sont bien souvent débutants. C'est pourquoi la méthode suivante suppose que ce soit VOUS qui ouvriez vos ports pour dépanner les autres.

Première étape : configuration chez vous.

Tout d'abord, installez openssh-server chez vous, ou sur un serveur auquel vous avez accès. Ouvrez les ports du pare-feu, et redirigez le port choisi pour ssh (souvent le 22) vers votre machine.

Maintenant, créez un utilisateur qui ne servira qu'au dépannage :

adduser bricolo

Assurez-vous de donner à cet utilisateur le droit de se connecter en ssh, en modifiant le fichier /etc/ssh/sshd_config

AllowUsers bricolo
# Pour autoriser l'affichage des applications graphiques
X11Forwarding yes

Deuxième étape : configuration chez le dépanné.

Là aussi, on commence par installer le paquet openssh-server.

Créez un lanceur ou autre artifice le plus simple possible pour que la personne à dépanner lance la commande suivante :

ssh -p xx -R 12345:localhost:22 bricolo@votreip

En remplaçant xx par le port ssh que vous avez choisi, ainsi que votreip par l'adresse ip ou nom de domaine de votre ordinateur/serveur.

Si vous passez par un serveur intermédiaire (pas directement sur votre ordinateur), il faudra en plus vous connecter à partir de votre ordinateur sur le serveur intermédiaire, avec le compte bricolo .

Une fois cette commande lancée, alors à partir de chez vous, vous pourrez vous connecter sur l'ordi à dépanner avec la commande :

ssh -p 12345 utilisateuradepanner@localhost

En remplaçant utilisateuradepanner par le login de la personne à aider!

Attention : Il est possible qu'on vous alerte sur les clés qui auraient changé, et une tentative de piratage. Cela est dû au fait que vous partagez le /home d'un seul utilisateur (ici bricolo) Dans ce cas, supprimez le fichier ~/.ssh/known_hosts (sur la machine qui apporte de l'aide). Sinon, ajoutez cette ligne dans le fichier ~/.ssh/config :

NoHostAuthenticationForLocalhost yes

En résumé :

Mais il faut entrer un mot de passe, c'est nul!

En effet, la personne à dépanner devra entrer un mot de passe (celui de l'utilisateur bricolo). Pour cela, je vous renvoie vers de tutoriels très bien fait pour configurer les clés ssh :

Et pour les applications graphiques (pas en terminal)

Pour pouvoir réaliser graphiquement des manipulations (lancer un navigateur internet sur la machine à dépanner ou le gestionnaire de fichiers), assurez-vous qu'il y a bien X11Forwarding yes dans les fichiers de configuration de ssh. De plus, ajoutez l'option -XC dans les commandes suivantes :

Solution alternative et plus rapide : vnc

Voici comment prendre le contrôle à distance du pc de quelqu'un grâce à VNC.

Nous allons passer par un serveur intermédiaire. Avantage : pas besoin de configurer de parefeu ni de routeur, et on utilise vnc via un tunnel ssh pour plus de sécurité.

Voici le schéma :

             ssh                            ssh
Ordi à aider -----> Serveur intermédiaire <----- votre ordi

À lancer au démarrage de l'ordi à dépanner (à configurer à l'avance) :

#!/bin/sh
x11vnc -display :0 -forever -shared -ncache 10 -bg &amp;
ssh -N -f -R 5900:localhost:5900 utilisateur@serveur -p port_ssh &amp;

Et sur votre ordi pour dépanner :

ssh utilisateur@server -L 5900:serveur:5900 -p port_ssh
vncviewer localhost:5900 (dans un autre onglet)

En résumé :