> DIO/ Système et réseau/ SSH dans un tunnel SSH

Principe et généralités

Dans ce tunnels SSH nous avons décrit comment mettre en place un tunnel ssh. Cependant lorsqu'on veut atteindre une machine dans un réseau interne (typiquement tycho.obspm.fr ou frontale.obspm.fr) il est vite fastidieux de devoir faire deux ssh de suite, le rebond implique par exemple le besoin de recopier les fichiers deux fois de suite. La méthode classique de faire

image

n'est pas du tout pratique dès qu'on besoin de le faire souvent. Ce document va vous guidez sur la possibilité de faire du ssh dans du ssh, le principe devient alors de faire un premier tunnel SSH :

image

ensuite de faire le ssh depuis votre poste et non depuis styx vers tycho en passant par le tunnel :

image

de cette manière vous pourrez faire de la copie de fichier comme si vous étiez à l'intérieur de l'Observatoire Ce système de tunnel peut fort légitimement être perçu comme complexe à comprendre, mettre en oeuvre et utiliser la première fois. Mais l'investissement en vaut la peine, car cela vous permettra de vous connectez par ssh depuis n'importe où vers les machines interne de l'Observatoire de façon quasi transparente. Le tout d'une manière parfaitement sécurisée.

Linux/Unix

Supposons que nous voulions nous connectez depuis votre poste sur tycho, pour cela nous allons monter un tunnel depuis votre poste vers tycho via styx et la commande

ssh -L 15110:tycho:22 styx.obspm.fr

voici une capture :

image

Ensuite depuis un autre terminal vous faites

ssh -p 15110 127.0.0.1

voici une capture :

image

Simplifications

Cela reste cependant assez fastidieux. Utilisons maintenant le fichier de configuration de ssh de votre poste pour vous simplifier grandement la vie. Ce fichier connu sous le nom de .ssh/config vous permez de configurer une fois pour toute ces tunnels. Par rapport au tunnel précédent rajouter dans ce fichier :

Host styx
        HostName styx.obspm.fr
        LocalForward 15110 tycho.obspm.fr:22

Host tycho
        HostName 127.0.0.1
    Port 15110

de cette manière on peut maintenant faire :

image

Cela est bien sur valable pour du scp par exemple :

image

Si vous n'avez pas le même login entre votre machine et sur styx/tycho il vous faut rajouter

Host styx
        HostName styx.obspm.fr
        LocalForward 15110 tycho.obspm.fr:22
    User votre_login

Host tycho
        HostName 127.0.0.1
        Port 15110
    User votre_login

ou votre_login et votre login sur styx/tycho. Vous pouvez bien sur faire autant d'entrée dans le fichier que vous avez de machine à atteindre. Par exemple supposons que vous voulez vous connecter aussi sur la machine frontale.obspm.fr, supposons que vous faites utiliser aussi le proxy :

Host styx
        HostName styx.obspm.fr
        LocalForward 15110 tycho.obspm.fr:22
        LocalForward 18732 frontale.obspm.fr:22
        LocalForward 3128 proxy.obspm.fr:3128
        User votre_login

Host tycho
        HostName 127.0.0.1
        Port 15110
        User votre_login

Host frontale
        HostName 127.0.0.1
        Port 18732
        User votre_login

de cette manière en faisant un seul ssh en début de session vous pourrez vous connecter en tappant une seul commande directement sur tycho ou frontale et utiliser le proxy.

Il faut faire attention que dans la configuration ci-dessus il est primordial de ne pas utiliser styx.obspm.fr dans la commande ssh, mais bien styx, sinon vous ne passez pas par la configuration que vous venez de mettre en place Il est important d'avoir des numéros de port (le 15110 pour tycho par exemple) unique, ici nous avons pris comme convention d'extraire le numéro à partir du numéro IP de la machine (tycho=145.238.151.10), mais n'importe quelle convention est valable.