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
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 :
ensuite de faire le ssh depuis votre poste et non depuis styx vers tycho en passant par le tunnel :
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 :
Ensuite depuis un autre terminal vous faites
ssh -p 15110 127.0.0.1
voici une capture :
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 :
Cela est bien sur valable pour du scp
par exemple :
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.