10

Is it possible to auto-mount a remote FS using sshfs upon instantiating a proper VPN connection?

Allow me to explain the scenario, I'm working remotely, to do that it helps if I can mount my home dir from a server in the office. To do that I need to vpn in. So within network manager I select the relevant VPN and connect. It connects but now I have to drop to the command line and mount my home dir on several machines.

If I forget to do one machine my local dev environment isn't as efficient. I suppose I could write a quick bash script to do this but I'd rather get it running automatically when I connect.

Braiam
  • 67,791
  • 32
  • 179
  • 269
Mark D
  • 755

2 Answers2

12

Find the UUID of your connection using

$ nmcli con

Note that this lists not just physical connections but also the Wireless connections defined (SSIDs).

Put some simple script like this in your /etc/NetworkManager/dispatcher.d/ directory:

#!/bin/bash

# Specify your connection UUID you like to trigger on below.
MYCON_UUID=397bdb70-2a89-415e-b3e9-09ca0b704fc1

if [ "$CONNECTION_UUID" == "$MYCON_UUID" ]
then
    # do your scripting you need to do here:
    mount -t sshfs ...
fi

Don't forget to set the right permissions to make it excutable (i.e. chmod +x trigger-sshfs-on-vpn.sh). It can be any type of script, a Bash script is probably sufficient for your purpose.

NetworkManager just executes all the scripts in this directory providing some environment variables you can use for scripting. In this case you probably just need CONNECTION_UUID.

gertvdijk
  • 67,947
  • This seems like the best way to do this. However I can't get mount -t sshfs user@host:/dir /home/myuser/dir to work, so I've tried sshfs hostname:?directory /home/myuser/dir but that doesn't seem to work either. Any ideas? – Mark D Sep 19 '12 at 04:07
  • @MarkD Does your issue only arise in a NetworkManager dispatcher script? If not, then you may want to ask another question for this. And please be more specific about "does not work". – gertvdijk Sep 19 '12 at 08:48
  • @gertvdijk What If I use ssh prv key for connecting and I want to have same permissions as user that run sshfs? meaning, will permissions work too? – confiq Dec 09 '13 at 08:57
  • 1
    @confiq No, NetworkManager will run this script as root. As with any other invocation from root as user, use su. Eg. su -l username -c 'mycommand' – gertvdijk Dec 09 '13 at 12:53
1

Use autofs.

Autofs will automatically mount a folder which is configured as a mount point when someone or something is accessing it on your system.

The mount point can be a remote host through sshfs as well as an arbitrary other mount point such as:

  • samba
  • nfs
  • NTFS

here is a nice howto

tomodachi
  • 14,832
  • While autofs would work if the network were reachable some of the time. It is only reachable when I'm connected to the vpn. – Mark D Sep 19 '12 at 04:05