Si je comprends bien tu es dans le schéma suivant:
1 2 3
| machine.a ----- machine.b ----- machine.c
| |
'-----------| |-----------' |
J'imagine que le firewall de la machine.c ne te permet pas de t'y connecter directement sans passer par la machine.b qui, elle, y a bien accès.
Heureusement, ssh permet de faire du "hop tunneling" ou "TCP forwarding".
Création du tunnel depuis la machine.a (par exemple sur le port 54321)
ssh -f -L 54321:machine.c:22 machine.b sleep 1800
1 2 3
| machine.a[54321] ---- [22]machine.b[22] ---- [22]machine.c
| |
'------------' |
Pour vérifier si le tunnel fonctionne bien:
Ensuite simplement (par exemple pour rappatrier un fichier de la machine.c):
rsync -av -e "ssh -p 54321" localhost:/chemin/sur/machine.c /rep/local
Le localhost semble bizarre mais il est indispensable car il est l'entrée du tunnel. Dans la commande de tunneling j'ai mis un timeout de 30 minutes (1800 sec.) pour ne pas à avoir à nettoyer les sockets ouverts.
Partager