Montage d’un système de fichiers distant (sshfs) via une machine intermédiaire

La situation:

  • Je travaille depuis machine1 , où j’ai un access root. À partir de machine1, je peux accéder à machine2 (où je suis un utilisateur sans privilèges) via ssh.
  • machine3 (également utilisateur sans privilèges) n’est pas directement accessible depuis la machine1 . Je dois utiliser une connexion ssh de machine2 pour accéder à machine3 .
  • En bref: machine1 peut ssh dans la machine2 mais pas dans la machine3 . machine2 peut ssh dans la machine3 .

Ce que je veux faire:

  • Je veux utiliser sshfs pour monter sur machine1 un répertoire local (propre) situé sur machine3 .

Complications:

  • sshfs n’est pas disponible sur machine2 .

Comment cela peut-il être fait?

Vous pouvez utiliser ssh pour transférer le port 22 de machine3 vers machine1 via machine2, comme

user1@machine1:$ ssh -L 2222:machine3:22 user2@machine2 

Après cela, configurez sshfs sur machine1 pour utiliser le port localhost:2222 (dans le deuxième onglet du terminal):

 user1@machine1:$ sshfs user3@localhost:/some/machine3/dir /some/local/dir -p 2222 

En théorie, montez la machine 3 sur la machine 2 via sshfs, puis montez le répertoire sshfs de la machine 2 dans la machine 1.

En tant qu’utilisateur sans privilège, vous ne pouvez créer que des dossiers dans votre répertoire personnel.

Donc, théoriquement, cela devrait fonctionner (mais soyez lent):

machine2:

 mkdir /home//sshfs sshfs @machine3:/ /home//sshfs 

machine1:

 mkdir -p /mnt/sshfs sshfs @machine2:/home//sshfs /mnt/sshfs