But de la manœuvre

Le but est de pouvoir travailler sur une machine se trouvant dans un réseau que nous ne maîtrisons pas, donc sur lequel il n’est pas possible de faire de la redirection de ports.

Il faut donc que ce soit la machine serveur qui établisse la connexion. Bien sûr, si l’on est nomade, nous pouvons avoir besoin de contacter cette machine en tant qu’hôte d’un autre réseau. Nous allons donc établir une connexion avec une machine intermédiaire sur laquelle nous avons la main.

Préalables

  1. avoir une machine accessible depuis l’Internet, ce peut être un serveur dédié ou une machine privée utilisant un service DNS dynamique ;
  2. OpenSSH doit être installé et fonctionnel ;
  3. des comptes clients doivent être créés sur la machine.

Il n’y a rien d’autre à faire sur cette machine, elle ne servira que d’intermédiaire. Notons quand même que la qualité de la transmission dépendra beaucoup de la bande passante disponible à ce niveau, l’entier des communications transitera par là.

Sur le serveur

Il n’y a qu’une commande à lancer :

 ssh -fNT -R 22001:localhost:22 <UserSurMachineDuMilieu>@<ipOuNomDomaineMachineDuMilieu>

où :

  • f : demande de passer en arrière plan (comme un service) juste avant d’exécuter les commande finale, ceci permet de renseigner le mot de passe si besoin. À noter que nous n’avons pas ici de commande finale vu que l’on ne veut qu’un tunnel.
  • N : ne pas exécuter de commande distante, Sert justement à la création d’un tunnel.
  • T : désactive l’allocation d’un pseudo tty.
  • R : spécifie que :
    • le port donné (22001) de la machine distante doit être transféré
    • au port spécifié (22)
    • de l’hôte donné (ici localhost) depuis la machine locale.

Sur la machine cliente

Là également il n’y a qu’une commande à lancer :

 ssh -XC -p 22001 <UserSurServeur>@<ipOuNomDomaine_Serveur>

Où :

  • X : active le transport X11 (pour les applications graphiques).
  • C : active la compression des données.
  • p : le port sur lequel on veux se connecter.

À faire. Il serait bien de faire encore ici :

  1. un schéma clair des machines et noms ;
  2. développer le cas de plusieurs serveurs transitant par le même intermédiaire ;
  3. le problème des sshid ;
  4. transit transparent sur l’intermédiaire ;
  5. mettre des liens ;
  6. perdre l’illusion qu’un jour je commencerais à apprendre l’anglais.