Rendez-vous sur Arrakis, Le site perso d'un hacker libriste curieux crêpophile étourdi
Le 11/09/2019 à 14:53 dans /Logiciel-libre/Tutoriels/

Aide informatique à distance

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.

Prérequis : SSH

Il faut que le service SSH soit actif chez vous et chez la personne à dépanner.

Première étape : configuration chez vous.

Ouvrez les ports du pare-feu, et redirigez le port choisi pour ssh (souvent le 22) vers votre machine (ordinateur perso ou serveur).

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

adduser oscour

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

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

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

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

ssh -R 12345:localhost:22 oscour@votreip

En remplaçant 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 oscour .

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!

Note : 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 répertoire d'un seul utilisateur (ici oscour). 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é :

  1. Connexion au serveur de l'ordi qui a besoin d'aide : ssh -R 12345 localhost:22 oscour@serveur
  2. Connexion de votre ordi au serveur intermédiaire (si vous passez par un serveur intermédiaire, sinon facultatif). À taper sur votre ordi : ssh oscour@serveur
  3. À partir de votre ordi, on se connecte à la machine à dépanner : ssh -p 12345 utilisateuradepanner@localhost

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 oscour). On va plutôt utiliser l'authentification par clés :

En résumé : Sur l'ordi qui aura besoin d'aide :

ssh-keygen -t ed25519 -f ~/.ssh/labas -a 64

Dans ~/.ssh/config :

Host labas
HostName nomtreslong.lichtenstein.loin
User bouvardetpecuchet.flaubert
PasswordAuthentication no
IdentityFile ~/.ssh/labas

Puis

ssh-copy-id -i ~/.ssh/labas.pub "bouvardetpecuchet.flaubert@nomtreslong.lichtenstein.loin -p xxx"

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 :