Connection en SSH derrière un NAT

Il est parfois interessant dans un reseau de pouvoir garder le controle d'une machine et de se connecter d'un autre endroit. Vous lancez l'installation d'une machine dans un réseau protegé derrière un NAT ou Firewall par exemple et voulez continuez de suivre le processus depuis chez vous.

Liste des besoins :

  • La machine que nous voulons atteindre a pour IP sur le reseau interne 192.168.20.55
  • La machine qui servira de passerelle possède l'IP 150.50.99.99
  • Votre machine personnelle (Desktop)

Destination (192.168.20.55) <- |NAT| <- Source (150.50.99.99)

1. SSH depuis la destination vers la source avec une IP public :

ssh -R 19999:localhost:22 sourceuser@150.50.99.99

* port 19999 ou n'importe quel port inutilisé.

2. Maintenant SSH depuis la source vers la destination à travers le tunnel SSH :

ssh localhost -p 19999

3. Votre Desktop peut accéder à l'ip 192.168.20.55 à travers la Destination (150.50.99.99).

Destination (192.168.20.55) <- |NAT| <- Source (150.50.99.99) <- Desktop

3.1 Depuis votre Desktop :

ssh sourceuser@150.50.99.99

3.2 Après s'être connecté avec succès à la Source :

ssh localhost -p 19999

* la connection entre la destination et la source doit toujours être active.

Astuce: executer la commande sur la destination avec watch et toppour garder la connection active sur la Destination.


Utiliser des ports en dessous de 1024 provoquera une erreur pour tous les utilisateurs sauf root tel que : "remote port forwarding failed for listen port"