Search code examples
linuxsshfilesystemssshfsremote-file-inclusion

Mounting a remote file system (sshfs) through an intermediate machine


The situation:

  • I am working from machine1, where I have root access. From machine1 I can access machine2 (where I am a user with no privileges) through ssh.
  • machine3 (also user with no privileges) is not directly accessible from machine1. I need to use an ssh connection from machine2 to access machine3.
  • In short: machine1 can ssh into machine2 but not into machine3. machine2 can ssh into machine3.

What I want to do:

  • I want to use sshfs to mount on machine1 a local (own) directory located on machine3.

Complications:

  • sshfs is not available on machine2.

How can this be done?


Solution

  • You may use ssh to forward port 22 from machine3 to machine1 via machine2, like

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

    After that configure sshfs on machine1 to use localhost:2222 port (in the second terminal tab):

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