Dans le dernier de nos « juste des exemples », imaginez que vous êtes dans un scénario où vous souhaitez vous connecter en ssh à un serveur (ou même parcourir une page Web, etc.) sur un serveur auquel vous ne pouvez pas accéder directement. Vous avez cependant accès depuis votre box (localhost) à un serveur (server1) qui peut se connecter à ce serveur (appelons ce server2).
Voici comment tunneliser cette merde !
Supposons que votre nom d'utilisateur est bob, mais le seul compte auquel vous avez accès sur l'hôte distant (serveur2) s'appelle tom, juste pour plus de clarté.
Tunnel depuis localhost
vers server1
et depuis localhost
vers server2
:
ssh -L 9998:tom@server2:22 -N bob@server1
ssh -p 9998 tom@localhost
Vous remarquerez que lorsque vous vous connectez au serveur 1 sur la première ligne, il reste assis et suspendu. C'est parce qu'il a établi le tunnel. Appuyez simplement sur ctrl+z
et tapez ‘bg
‘ pour mettre en arrière-plan le processus ssh avant de passer à ssh à travers le tunnel.
Si vous voulez que ce soit super sécurisé, vous avez besoin d'un cerceau supplémentaire :cet exemple ouvrira un tunnel de l'hôte local au serveur1 par lequel le service SSH sur le serveur2 peut être utilisé. Ensuite, un deuxième tunnel est ouvert depuis localhost
à host2
via le premier tunnel.
ssh -L 9998:tom@server2:22 -N bob@server1
ssh -L 9999:tom@localhost:1234 -N -p 9998 localhost
Voici un excellent lien contenant d'autres exemples et explications :
http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html