Never Ending Security

It starts all here

Mount a Remote Directory on Linux with SSHFS

How To: Mount Remote Directory

If you ever had to mount a remote directory locally but you only had ssh access to the host where the remote directory resides, and there is no network file system (e.g., NFS ) available to export the directory with, you may want to stick around. You can actually mount a remote directory over ssh, and access the directory via file system interfaces and we will show you how to do this.

Mounting a remote folder over ssh is handled by FUSE kernel module, which allows one to create a virtual file system in user space. sshfs and gvfs are two such virtual file systems built on FUSE that allow one to mount a remote file system over ssh.

Mount a remote directory over ssh with sshfs

To install sshfs on Ubuntu or Debian:

$ sudo apt-get install sshfs

Next, if you want to use sshfs as a non-root user, you need to add the user to a group called fuse. That is:

$ sudo usermod -a -G fuse <user_name>

Run the following to make group membership change activated.

$ exec su -l $USER

Finally, you can mount a remote directory using sshfs as follows.

$ sshfs my_user@remote_host:/path/to/directory <local_mount_point>

The above command will ask you for ssh password for the remote host. Once you enter the password, a remote directory will become available at the local mount point. If you want to set up passwordless mounting, all you have to do is to set up passwordless ssh login to my_user@remote_host.

To unmount a ssh-mounted directory:

$ fusermount -u <local_mount_point>

If you would like to automatically mount over ssh upon boot, set up passwordless ssh login, and append the following in /etc/fstab.

$ sudo vi /etc/fstab
sshfs#my_user@remote_host:/path/to/directory <local_mount_point> fuse user 0 0

Mount a remote directory over ssh on GNOME desktop

If you are using GNOME desktop, mounting over ssh is quite easy. Nautilus, the official file manager for GNOME desktop, already supports mounting over ssh. Underneath it, Nautilus uses gvfs virtual file system which can expose gvfs mounts over ssh using FUSE.

To mount a remote folder over ssh with Nautilus, go to “File”->”Connect to Server” on Nautilus. Then type in the remote ssh server information, remote folder path, as well as ssh login credentials as follows.

Once you click on “Connect” button, a local mount point will automatically be generated, and a remote directory will be mounted there via gvfs. To check a gvfs mount point, run the following.

$ mount
gvfsd-fuse on /run/user/cyberpunk/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=cyberpunk)
$ ls /run/user/cyberpunk/gvfs,user=cyberpunk

In this example, the local gvfs mount point is as follows. You can access a remote directory either via command-line at this mount point, or through Nautilus GUI.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s