How to mount remote SSHFS via intermediate machine? Tunneling?












24















I would like to mount a remote file system (A) using SSHFS, but sometimes I have IP address, access from which is not allowed. So my plan is to access it via another machine (B) in that network. Do I need to mount A on B and then to mount B (and A) on my local computer? Is there a better way to do it?



Update



Just to clarify the procedure:



First, I make a tunnel



ssh -f user@machineB -L MYPORT:machineA:22 -N


And then I mount the remote file system



sshfs -p MYPORT user@127.0.0.1:/myremotepath /mylocalpath


Is it correct?



How do I destroy the tunnel when I am done?










share|improve this question




















  • 1





    better way to set up tunnel is to have connection to B from GNU screen window using ssh user@machineB -L 2222:machineA:22 -N so you can easily kill it with ^C

    – edk
    May 9 '10 at 16:03
















24















I would like to mount a remote file system (A) using SSHFS, but sometimes I have IP address, access from which is not allowed. So my plan is to access it via another machine (B) in that network. Do I need to mount A on B and then to mount B (and A) on my local computer? Is there a better way to do it?



Update



Just to clarify the procedure:



First, I make a tunnel



ssh -f user@machineB -L MYPORT:machineA:22 -N


And then I mount the remote file system



sshfs -p MYPORT user@127.0.0.1:/myremotepath /mylocalpath


Is it correct?



How do I destroy the tunnel when I am done?










share|improve this question




















  • 1





    better way to set up tunnel is to have connection to B from GNU screen window using ssh user@machineB -L 2222:machineA:22 -N so you can easily kill it with ^C

    – edk
    May 9 '10 at 16:03














24












24








24


14






I would like to mount a remote file system (A) using SSHFS, but sometimes I have IP address, access from which is not allowed. So my plan is to access it via another machine (B) in that network. Do I need to mount A on B and then to mount B (and A) on my local computer? Is there a better way to do it?



Update



Just to clarify the procedure:



First, I make a tunnel



ssh -f user@machineB -L MYPORT:machineA:22 -N


And then I mount the remote file system



sshfs -p MYPORT user@127.0.0.1:/myremotepath /mylocalpath


Is it correct?



How do I destroy the tunnel when I am done?










share|improve this question
















I would like to mount a remote file system (A) using SSHFS, but sometimes I have IP address, access from which is not allowed. So my plan is to access it via another machine (B) in that network. Do I need to mount A on B and then to mount B (and A) on my local computer? Is there a better way to do it?



Update



Just to clarify the procedure:



First, I make a tunnel



ssh -f user@machineB -L MYPORT:machineA:22 -N


And then I mount the remote file system



sshfs -p MYPORT user@127.0.0.1:/myremotepath /mylocalpath


Is it correct?



How do I destroy the tunnel when I am done?







ssh mount remote tunnel sshfs






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 9 '10 at 10:05







Andrei

















asked May 8 '10 at 10:47









AndreiAndrei

61931027




61931027








  • 1





    better way to set up tunnel is to have connection to B from GNU screen window using ssh user@machineB -L 2222:machineA:22 -N so you can easily kill it with ^C

    – edk
    May 9 '10 at 16:03














  • 1





    better way to set up tunnel is to have connection to B from GNU screen window using ssh user@machineB -L 2222:machineA:22 -N so you can easily kill it with ^C

    – edk
    May 9 '10 at 16:03








1




1





better way to set up tunnel is to have connection to B from GNU screen window using ssh user@machineB -L 2222:machineA:22 -N so you can easily kill it with ^C

– edk
May 9 '10 at 16:03





better way to set up tunnel is to have connection to B from GNU screen window using ssh user@machineB -L 2222:machineA:22 -N so you can easily kill it with ^C

– edk
May 9 '10 at 16:03










3 Answers
3






active

oldest

votes


















9














yeah tunneling. You connect machine B, create local tunnel (-L) to SSHd port of machine A then sshfs to localhost to the port of newly created tunnel.






share|improve this answer
























  • Is the following command the right way to do that? ssh -f user@machineB -L 25:machineA:25 -N

    – Andrei
    May 8 '10 at 14:00






  • 1





    yes if you have sshd listening to port 25 on machine A. then you'll just have to sshfs -p 25 user@127.0.0.1:/path /localpath

    – edk
    May 8 '10 at 14:20








  • 1





    Aha, so for default ssh setup I need ssh -f user@machineB -L 22:machineA:22 -N, right?

    – Andrei
    May 8 '10 at 15:32



















13














You can use option ssh_command of sshfs to do the trick:



sshfs ma: /mnt -o ssh_command='ssh -t mb ssh'


Unmount with the usual



fusermount -u /mnt


Sorry this is 7 years late...






share|improve this answer



















  • 3





    With the new -J option in Openssh 1.1 it is something along: sshfs ma: /mnt -o ssh_command='ssh -J mb'

    – Ohad Rubin
    Jul 18 '18 at 1:25



















0














Your connection scheme:
Your machine --> Host B --> Host A



Our solution will use Proxy Jump, introduced in OpenSSH 7.3, so you'll need to check that your version is newer with:



ssh -V


Then you need to configure properly your ~/.ssh/config. For example, if machineB is available with a password login from machineA :



machineB
HostName {machineB ip address}
User {machineB username}
Port {machineB port-number}
IdentityFile ~/.ssh/{machineB private ssh key}

machineA
ProxyJump machineB
Hostname {machineA ip address, maybe in local network}
User {machineA username}
Port {machineA port-number}


Finally, create your mountpoint and add line to /etc/fstab



machineB:{machineB mount path}  {your local mountpoint}  fuse.sshfs delay_connect,_netdev,user,idmap=user,follow_symlinks,identityfile={local path to machineB private key},default_permissions,uid={local user uid},gid={local user gid} 0 0





share|improve this answer


























    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "3"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f139023%2fhow-to-mount-remote-sshfs-via-intermediate-machine-tunneling%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    9














    yeah tunneling. You connect machine B, create local tunnel (-L) to SSHd port of machine A then sshfs to localhost to the port of newly created tunnel.






    share|improve this answer
























    • Is the following command the right way to do that? ssh -f user@machineB -L 25:machineA:25 -N

      – Andrei
      May 8 '10 at 14:00






    • 1





      yes if you have sshd listening to port 25 on machine A. then you'll just have to sshfs -p 25 user@127.0.0.1:/path /localpath

      – edk
      May 8 '10 at 14:20








    • 1





      Aha, so for default ssh setup I need ssh -f user@machineB -L 22:machineA:22 -N, right?

      – Andrei
      May 8 '10 at 15:32
















    9














    yeah tunneling. You connect machine B, create local tunnel (-L) to SSHd port of machine A then sshfs to localhost to the port of newly created tunnel.






    share|improve this answer
























    • Is the following command the right way to do that? ssh -f user@machineB -L 25:machineA:25 -N

      – Andrei
      May 8 '10 at 14:00






    • 1





      yes if you have sshd listening to port 25 on machine A. then you'll just have to sshfs -p 25 user@127.0.0.1:/path /localpath

      – edk
      May 8 '10 at 14:20








    • 1





      Aha, so for default ssh setup I need ssh -f user@machineB -L 22:machineA:22 -N, right?

      – Andrei
      May 8 '10 at 15:32














    9












    9








    9







    yeah tunneling. You connect machine B, create local tunnel (-L) to SSHd port of machine A then sshfs to localhost to the port of newly created tunnel.






    share|improve this answer













    yeah tunneling. You connect machine B, create local tunnel (-L) to SSHd port of machine A then sshfs to localhost to the port of newly created tunnel.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered May 8 '10 at 12:43









    edkedk

    1983




    1983













    • Is the following command the right way to do that? ssh -f user@machineB -L 25:machineA:25 -N

      – Andrei
      May 8 '10 at 14:00






    • 1





      yes if you have sshd listening to port 25 on machine A. then you'll just have to sshfs -p 25 user@127.0.0.1:/path /localpath

      – edk
      May 8 '10 at 14:20








    • 1





      Aha, so for default ssh setup I need ssh -f user@machineB -L 22:machineA:22 -N, right?

      – Andrei
      May 8 '10 at 15:32



















    • Is the following command the right way to do that? ssh -f user@machineB -L 25:machineA:25 -N

      – Andrei
      May 8 '10 at 14:00






    • 1





      yes if you have sshd listening to port 25 on machine A. then you'll just have to sshfs -p 25 user@127.0.0.1:/path /localpath

      – edk
      May 8 '10 at 14:20








    • 1





      Aha, so for default ssh setup I need ssh -f user@machineB -L 22:machineA:22 -N, right?

      – Andrei
      May 8 '10 at 15:32

















    Is the following command the right way to do that? ssh -f user@machineB -L 25:machineA:25 -N

    – Andrei
    May 8 '10 at 14:00





    Is the following command the right way to do that? ssh -f user@machineB -L 25:machineA:25 -N

    – Andrei
    May 8 '10 at 14:00




    1




    1





    yes if you have sshd listening to port 25 on machine A. then you'll just have to sshfs -p 25 user@127.0.0.1:/path /localpath

    – edk
    May 8 '10 at 14:20







    yes if you have sshd listening to port 25 on machine A. then you'll just have to sshfs -p 25 user@127.0.0.1:/path /localpath

    – edk
    May 8 '10 at 14:20






    1




    1





    Aha, so for default ssh setup I need ssh -f user@machineB -L 22:machineA:22 -N, right?

    – Andrei
    May 8 '10 at 15:32





    Aha, so for default ssh setup I need ssh -f user@machineB -L 22:machineA:22 -N, right?

    – Andrei
    May 8 '10 at 15:32













    13














    You can use option ssh_command of sshfs to do the trick:



    sshfs ma: /mnt -o ssh_command='ssh -t mb ssh'


    Unmount with the usual



    fusermount -u /mnt


    Sorry this is 7 years late...






    share|improve this answer



















    • 3





      With the new -J option in Openssh 1.1 it is something along: sshfs ma: /mnt -o ssh_command='ssh -J mb'

      – Ohad Rubin
      Jul 18 '18 at 1:25
















    13














    You can use option ssh_command of sshfs to do the trick:



    sshfs ma: /mnt -o ssh_command='ssh -t mb ssh'


    Unmount with the usual



    fusermount -u /mnt


    Sorry this is 7 years late...






    share|improve this answer



















    • 3





      With the new -J option in Openssh 1.1 it is something along: sshfs ma: /mnt -o ssh_command='ssh -J mb'

      – Ohad Rubin
      Jul 18 '18 at 1:25














    13












    13








    13







    You can use option ssh_command of sshfs to do the trick:



    sshfs ma: /mnt -o ssh_command='ssh -t mb ssh'


    Unmount with the usual



    fusermount -u /mnt


    Sorry this is 7 years late...






    share|improve this answer













    You can use option ssh_command of sshfs to do the trick:



    sshfs ma: /mnt -o ssh_command='ssh -t mb ssh'


    Unmount with the usual



    fusermount -u /mnt


    Sorry this is 7 years late...







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Oct 8 '17 at 0:34









    Rodrigo FariasRodrigo Farias

    13112




    13112








    • 3





      With the new -J option in Openssh 1.1 it is something along: sshfs ma: /mnt -o ssh_command='ssh -J mb'

      – Ohad Rubin
      Jul 18 '18 at 1:25














    • 3





      With the new -J option in Openssh 1.1 it is something along: sshfs ma: /mnt -o ssh_command='ssh -J mb'

      – Ohad Rubin
      Jul 18 '18 at 1:25








    3




    3





    With the new -J option in Openssh 1.1 it is something along: sshfs ma: /mnt -o ssh_command='ssh -J mb'

    – Ohad Rubin
    Jul 18 '18 at 1:25





    With the new -J option in Openssh 1.1 it is something along: sshfs ma: /mnt -o ssh_command='ssh -J mb'

    – Ohad Rubin
    Jul 18 '18 at 1:25











    0














    Your connection scheme:
    Your machine --> Host B --> Host A



    Our solution will use Proxy Jump, introduced in OpenSSH 7.3, so you'll need to check that your version is newer with:



    ssh -V


    Then you need to configure properly your ~/.ssh/config. For example, if machineB is available with a password login from machineA :



    machineB
    HostName {machineB ip address}
    User {machineB username}
    Port {machineB port-number}
    IdentityFile ~/.ssh/{machineB private ssh key}

    machineA
    ProxyJump machineB
    Hostname {machineA ip address, maybe in local network}
    User {machineA username}
    Port {machineA port-number}


    Finally, create your mountpoint and add line to /etc/fstab



    machineB:{machineB mount path}  {your local mountpoint}  fuse.sshfs delay_connect,_netdev,user,idmap=user,follow_symlinks,identityfile={local path to machineB private key},default_permissions,uid={local user uid},gid={local user gid} 0 0





    share|improve this answer






























      0














      Your connection scheme:
      Your machine --> Host B --> Host A



      Our solution will use Proxy Jump, introduced in OpenSSH 7.3, so you'll need to check that your version is newer with:



      ssh -V


      Then you need to configure properly your ~/.ssh/config. For example, if machineB is available with a password login from machineA :



      machineB
      HostName {machineB ip address}
      User {machineB username}
      Port {machineB port-number}
      IdentityFile ~/.ssh/{machineB private ssh key}

      machineA
      ProxyJump machineB
      Hostname {machineA ip address, maybe in local network}
      User {machineA username}
      Port {machineA port-number}


      Finally, create your mountpoint and add line to /etc/fstab



      machineB:{machineB mount path}  {your local mountpoint}  fuse.sshfs delay_connect,_netdev,user,idmap=user,follow_symlinks,identityfile={local path to machineB private key},default_permissions,uid={local user uid},gid={local user gid} 0 0





      share|improve this answer




























        0












        0








        0







        Your connection scheme:
        Your machine --> Host B --> Host A



        Our solution will use Proxy Jump, introduced in OpenSSH 7.3, so you'll need to check that your version is newer with:



        ssh -V


        Then you need to configure properly your ~/.ssh/config. For example, if machineB is available with a password login from machineA :



        machineB
        HostName {machineB ip address}
        User {machineB username}
        Port {machineB port-number}
        IdentityFile ~/.ssh/{machineB private ssh key}

        machineA
        ProxyJump machineB
        Hostname {machineA ip address, maybe in local network}
        User {machineA username}
        Port {machineA port-number}


        Finally, create your mountpoint and add line to /etc/fstab



        machineB:{machineB mount path}  {your local mountpoint}  fuse.sshfs delay_connect,_netdev,user,idmap=user,follow_symlinks,identityfile={local path to machineB private key},default_permissions,uid={local user uid},gid={local user gid} 0 0





        share|improve this answer















        Your connection scheme:
        Your machine --> Host B --> Host A



        Our solution will use Proxy Jump, introduced in OpenSSH 7.3, so you'll need to check that your version is newer with:



        ssh -V


        Then you need to configure properly your ~/.ssh/config. For example, if machineB is available with a password login from machineA :



        machineB
        HostName {machineB ip address}
        User {machineB username}
        Port {machineB port-number}
        IdentityFile ~/.ssh/{machineB private ssh key}

        machineA
        ProxyJump machineB
        Hostname {machineA ip address, maybe in local network}
        User {machineA username}
        Port {machineA port-number}


        Finally, create your mountpoint and add line to /etc/fstab



        machineB:{machineB mount path}  {your local mountpoint}  fuse.sshfs delay_connect,_netdev,user,idmap=user,follow_symlinks,identityfile={local path to machineB private key},default_permissions,uid={local user uid},gid={local user gid} 0 0






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Mar 1 at 14:36

























        answered Feb 28 at 12:49









        lucidyanlucidyan

        1012




        1012






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Super User!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f139023%2fhow-to-mount-remote-sshfs-via-intermediate-machine-tunneling%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How do I know what Microsoft account the skydrive app is syncing to?

            When does type information flow backwards in C++?

            Grease: Live!