Il est simple de configurer un serveur SSH et de s'y connecter lorsque le pare-feu/routeur est correctement configuré.
Cependant certains réseaux ne laissent pas par défaut entrer les connexions ssh, le port par défaut (22) n'étant pas ouvert, comme ce peut notamment être le cas des particuliers derrière une BOX. Les connexions sortantes ne sont toutefois pas bloquées, ce qui va vous permettre de vous connecter quand même.
Une parade est donc d'utiliser la fonction REVERSE de SSH. Le principe consiste à initier une connexion depuis la machine derrière le routeur 1) sur une machine tierce 2), et ainsi permettre une connexion retour depuis la machine tierce qui ne sera pas bloquée.
Cette façon de procéder est très utile pour dépanner quelqu'un à distance qui aura juste à initier la connexion sortante en tapant une ligne depuis le terminal, sans avoir à configurer le pare-feu/routeur/BOX. Il n'est également pas nécessaire de connaitre l'adresse IP de la machine distante ni d'effectuer un routage de la connexion.
Prenez l'exemple de configuration suivant:
Ici
Créez un nouvel utilisateur spécialement pour cette connexion afin que l'utilisateur userD du poste distant ne puisse pas avoir un accès complet au poste local. Ce nouvel utilisateur créé pourra cependant avoir des droits personnalisés.
Saisissez dans un terminal sur local la commande suivante :
sudo adduser --no-create-home userL
où:
Initiez une connexion à local en saisissant sur le poste distant:
ssh -NR 12345:localhost:22 userL@local
où
La connexion étant désormais activée depuis distant vers local, le pare-feu va donc laisser rentrer la connexion reverse, à savoir depuis local vers distant.
Pour cela taper dans un terminal sur local:
ssh -p 12345 userD@localhost
où
Cette configuration est pratique quand le poste local est lui-même derrière un pare-feu et/ou ne dispose pas d'un serveur ssh. Prenez l'exemple de configuration suivant:
Ici
Pour résumé le principe, il s'agira de:
Taper dans un terminal :
sudo adduser --no-create-home userS
où
Initiez une connexion sur serveur en tapant dans un terminal de la machine distant :
ssh -R 12345:localhost:22 userS@serveur
où
-N
peut également être ajoutée pour ne pas faire apparaitre d'invite de terminal sur distant
Créer un pont entre serveur et local en tapant dans un terminal de ce dernier
ssh userS@serveur
où
Vous pouvez désormais atteindre le poste distant en saisissant dans le terminal du poste local connecté précédemment sur serveur
ssh -p 12345 userD@localhost
Contributeurs:nesthib