Précédent   Forum des professionnels en informatique > Systèmes > Linux > Réseau
Réseau Vos questions autour des réseaux et télécoms sous Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2011, 15h00   #1
Invité de passage
 
Inscription : avril 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 11
Points : 0
Points : 0
Par défaut Multi tunneling SSH

Bonjour,

J'essaie en vain de faire du SSH multi tunnel avec redirection de port.

Je dois récupérer des fichiers sur un serveur unix (que j'appelerai serveur 3) via mon poste local (sous windows que j'appelerai workstation) et entre les deux se trouve deux autres serveurs par lesquels je dois obligatoirement passer en m'identifiant (appelé serveur 2 et 3).

J'ai donc:

Workstation => serveur1 => serveur 2 => serveur 3

Les données à rapatrier sur workstation se trouvant sur le serveur 3.
J'ai réussi à faire un tunnel ssh avec forwarding de port dans la configuration suivante :

Workstation => serveur1 => serveur 2

Mais je ne trouve pas la solution pour aller jusqu'au serveur 3. J'utilise des .bat qui lance le logiciel plink qui monte donc le tunnel et envoi la commande scp pour récupérer les données. Cependant impossible de trouver comment faire du multi tunneling jusqu'au server 3. Le peu de sujet sur internet sont souvent peu claire

Quelqu'un s'y connait et peut m'aider?

Cordialement,
Tino
-Tino- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 09h46   #2
Invité de passage
 
Inscription : avril 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 11
Points : 0
Points : 0
Bonjour,

Personne pour m'éclairer ?

Cordialement,
Tino
-Tino- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 17h07   #3
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Je pense qu'il te faut commencer par la fin :

tu fais un tunnel du serveur 1 (port x) en te connectant sur le serveur 2 avec redirection sur le 3 (port y)

puis un tunnel de ton poste vers le serveur 1 avec redirection sur le port x

?
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 17h48   #4
Invité de passage
 
Inscription : avril 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 11
Points : 0
Points : 0
Bonjour,

Aurais-tu un exemple de syntaxe de commande concernant la technique que tu as donné?

Je n'ai pas réussi pour l'instant

Merci par avance
Tino
-Tino- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 14h10   #5
Invité de passage
 
Inscription : avril 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 11
Points : 0
Points : 0
Bonjour,

Dans le cas du
Workstation => serveur1 => serveur 2

Je lance un .bat sur la workstation avec d'une part :


Plink.exe -batch -ssh -P 22 -l monlogin -pw monpassword -N -L 5555:@srv2:22 @srv1

Puis je fais un scp :
winscp407.exe /console /command "option batch continue" "option confirm off" "option echo off" "open scp://monlogin:monlogin@127.0.0.1:5555" "get /un_fichier"

Ce fonctionnement est OK mais je n'ai pas réussi à le compléter pour aller jusqu'au serveur 3
Le but serait de lancer un .bat qui va chercher un fichier sur le serveur 3.

Merci pour le temps qui m'est consacré

Cordialement,
Tino
-Tino- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 09h43   #6
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
En relisant ta question et ton exemple, je me suis rendu compte que je me suis fourvoyé ! La solution est toute simple, pas besoin de se prendre la tête comme je le faisais (et qui n'aurait pas marché de toute façon... )

Actuellement, tu ouvres un tunnel entre ton port 5555 et le port 22 de srv2, tu as donc accès à srv2 :
Code :
Plink.exe -batch -ssh -P 22 -l monlogin -pw monpassword -N -L 5555:@srv2:22 @srv1
Il suffit alors d'ouvrir un nouveau tunnel entre un autre port local (5556 par exemple), et le port 22 de srv3 puisque tu y as accès grâce à srv2 :
Code :
Plink.exe -batch -ssh -P 5555 -l monlogin2 -pw monpassword2 -N -L 5556:@srv3:22 localhost
(ici, on met localhost puisqu'on se connecte à srv2 par le port 5555 ouvert précédemment...)

Ton scp devrait marcher :
Code :
winscp407.exe /console /command "option batch continue" "option confirm off" "option echo off" "open scp://monlogin:monlogin@127.0.0.1:5556" "get /un_fichier"
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 10h48   #7
Invité de passage
 
Inscription : avril 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 11
Points : 0
Points : 0
  • Hello,
  • J'ai bien modifié mes scripts comme indiqué mais une erreur apparait :
  • The server's host key is not cached in the registry. You
  • have no guarantee that the server is the computer you
  • think it is.
  • The server's type_de_cryptage key fingerprint is:
  • Type nb_debits la_clé_de_cryptage
  • Connection abandoned.
  • Appuyez sur une touche pour continuer...
  • Il y a une déclaration de serveur à faire dans un fichier ou un truc du genre ?
  • Bonne journée,
  • Tino

Ok, donc si j'enlève l'option -batch dans le deuxième plink.exe l'option me demandant si je veux sauvegarder le serveur dans le registre apparait.

Reste à voir pourquoi le fichier est pas rapatrié, une fenêtre s'ouvre et se referme très rapidement sans que j'ai le temps de lire ce qui y est affiché
-Tino- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 11h44   #8
Invité de passage
 
Inscription : avril 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 11
Points : 0
Points : 0
Ca fonctionne

J'avais juste encore un soucis d'arborescence par rapport au fichier que je voulais récupérer

Par contre je dois avouer avoir du mal à comprendre dans les détails comment tout ça fonctionne J'ai essayé de me faire un schéma avec les différents serveurs et la workstation ainsi que les ports et les flux mais j'ai du mal Si jamais quelqu'un a la motivation de schématiser ce qui se passe

Mille merci en tout cas

Tino
-Tino- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 18h31   #9
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Pas trop le temps de faire un dessin (peut-être plus tard), je tente de réexpliquer :

1) Tu ouvres un tunnel entre le port 5555 de ton propre PC vers le port 22 du serveur 2 (en utilisant une connexion SSH entre ton propre PC et le serveur 1 qui a accès au serveur 2).

Code :
Plink.exe -batch -ssh -P 22 -l monlogin -pw monpassword -N -L 5555:@srv2:22 @srv1
-batch -ssh > facultatif ? : aucune idée de ce que ça fait et pas cherché à comprendre sans doute pour dire que c'est dans un batch (pas d'interaction ?) et que tu te connectes en ssh...
-P 22 > facultatif: indique le port de connexion
-l monlogin > indique le login à utiliser sur le serveur 1
-pw monpassword > indique le password à utiliser sur le serveur 1
-N > facultatif : n'ouvre pas de shell
-L 5555:@srv2:22 > créé un tunnel entre ton port Local 5555 (-L comme Local) et le port 22 du serveur srv2
@srv1 > adresse du serveur sur lequel tu te connectes

2) Grâce à ce tunnel, le port 5555 de ton propre PC "devient" le port 22 du serveur 2. Ainsi, en te connectant au port 5555 de ton PC, c'est comme si tu te connectais au port 22 du serveur 2.

Code :
Plink.exe -batch -ssh -P 5555 -l monlogin2 -pw monpassword2 -N -L 5556:@srv3:22 localhost
-batch -ssh > idem
-P 5555 > nécessaire cette fois-ci : comme on utilise le tunnel, il faut se connecter au port 5555 de ton propre PC, tu indiques ici le port et plus loin ton propre PC (par le mot localhost)
-l monlogin2 > indique le login à utiliser sur le serveur 2
-pw monpassword2 > indique le password à utiliser sur le serveur 2
-N > facultatif : n'ouvre pas de shell
-L 5556:@srv3:22 > créé un tunnel entre ton port Local 5556 (-L comme Local) et le port 22 du serveur srv3 (il faut utiliser un numéro différent de 5555 puisque ce port est déjà utilisé par ta première connexion, d'où 5556)
localhost > adresse du serveur sur lequel tu te connectes, ici, localhost = ton propre PC car tu te connectes par le tunnel (et tu indiques donc l'entrée du tunnel, soit le port 5555 de ton PC)

Tu as donc maintenant un tunnel ouvert entre le port 5556 de ton PC et le port 22 du serveur srv3, et le port 5556 de ton propre PC "devient" le port 22 du serveur 3 : tu peux donc utiliser winscp :

Code :
winscp407.exe /console /command "option batch continue" "option confirm off" "option echo off" "open scp://monlogin:monlogin@127.0.0.1:5556" "get /un_fichier"
open scp://monlogin:monlogin@127.0.0.1:5556 > ouvre la connexion en utilisant l'adresse 127.0.0.1 (soit localhost) et le port 5556 ce qui redirige la connexion vers le port 22 du serveur srv 3
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h59.


 
 
 
 
Partenaires

Hébergement Web