Tunnel inverse SSH

Problèmatique : vous êtes sur une machine non accessible directement de l'extérieur, et pourtant, vous voulez pouvoir vous y connecter depuis l'extérieur.

Moyens : Vous avez un accès SSH sur une autre machine accessible depuis l'extérieur.

Solution : le tunnel SSH inverse. Il s'agit d'ouvrir un tunnel sur la machine accessible depuis l'extérieur vers votre machine. Comme cela en vous connectant sur la machine ouverte vous pourrez ensuite rejoindre la vôtre (fermée).

Cela se fait de la façon suivante :

screen ssh -NTR 1025:localhost:22 host.name

Cette commande ouvre un tunnel sur la machine distante host.name qui relie le port 1025 sur cette machine au port 22 sur la machine locale.

Si vous appuyez sur Control+C ou quittez votre terminal, le tunnel sera fermé. Pour le conserver, il est judicieux de lancer la commande précédente dans un screen.

Il suffit ensuite d'utiliser la commande suivante pour accéder à votre machine.

 ssh user@localhost -p 1025

Note : le port de départ du tunnel (1025 ici) doit être supérieur à 1024 car en tant qu'utilisateur vous ne disposez pas des privilèges pour écouter sur un port inférieur ou égal à 1024.