SSH Filesystem

Background

ThayerFS can be accessed via ssh by connecting to one of our Linux compute servers. A project that takes advantage of this ability to provide file access is SSHFS. Once you have SSHFS set up on a non-Thayer School operated system, you can access your ThayerFS files using normal Linux operations. More information about SSHFS and FUSE can be found here: http://fuse.sourceforge.net/sshfs.html

If you are on campus, we recommend using one of the methods described on our Thayer Shares Connecting page. However, if you are trying to connect to ThayerFS or Jumbo from a system that does not support our protocols easily, SSHFS may be a good option.

Linux

Installing

In order to use sshfs, the linux client on which you are working must have FUSE and SSHFS installed. If you need to install FUSE and SSHFS, please see the documentation for your particular linux distribution or the SSHFS web site at: http://fuse.sourceforge.net/sshfs.html

On Ubuntu, you will need to add the Universe "component" to your software sources (see https://help.ubuntu.com/community/Repositories/Ubuntu), and then sshfs can be installed via the gui Add/Remove Programs... or at the command line:

$ sudo apt update
$ sudo apt install sshfs

To verify that SSHFS is installed, check the output of the "which" command:

$ which sshfs
/usr/bin/sshfs

If there is no output from this command, SSHFS is not installed properly.

Mounting 

To mount ThayerFS via SSHFS, you first need to create a mount point, which is just an empty directory:

$ mkdir thayerfs

Then, issue the sshfs command to create the connection (be sure to use the '-o follow_symlinks' option or things will not work properly):

sshfs -o follow_symlinks netid@babylon1.thayer.dartmouth.edu:/thayerfs ./thayerfs
netid@babylon1's password:
$ ls thayerfs/
apps  common  courses  home  research

The linux compute server "babylon1" has been used as an example, but you can use any of our Linux compute servers.

Once the sshfs command completes, ThayerFS will be accessible via the local thayerfs directory you created. Keep in mind that this method will be much slower than our standard protocols.

Alternately, if you need to access only one directory, you can connect directly to it:

$ mkdir mydir
	

Then, issue the sshfs command to create the connection:

sshfs -o follow_symlinks netid@babylon1.thayer.dartmouth.edu:/thayerfs/research/mydir ./mydir
netid@babylon1's password:
$ ls mydir/
file1  file2  file3
	

When you are done using SSHFS, you should unmount the filesystem and then remove the mount point you created above:

$ fusermount -u ./thayerfs
$ rmdir thayerfs

macOS

A macOS implementation of FUSE and SSHFS is available here:

https://osxfuse.github.io/

To install this, download and install both the OSXFUSE and SSHFS packages.

Instructions for using this software is also available at the OSXFUSE site:

https://github.com/osxfuse/osxfuse/wiki/SSHFS

Permissions Issues

For certain ThayerFS shares or folders, the macOS graphical sshfs client may mount properly but then you get permissions denied errors when trying to access the mounted filesystem. This issue is most-commonly caused by the way permissions are translated and interpreted by the macOS Finder. To work around this issue, you need to mount the filesystem from the command line using the '-o defer_permissions' option to sshfs. So, to mount the "bigproject" research folder, you would do something like this from a shell prompt (the backslashes are for clarity - they can be omitted and everything put on one line):

$ mkdir /Volumes/bigproject
$ /Applications/sshfs.app/Contents/Resources/sshfs-static \
    d12345q@babylon1.thayer.dartmouth.edu:/thayerfs/research/bigproject \
    /Volumes/bigproject -o defer_permissions
	

You can then interact with this volume as you would any network-mounted volume.

Windows

The best free implementation of SSHFS on Windows is the Dokan library. This is not FUSE, but is a Windows-equivalent library that provides the same functionality.

To install this, you need to download and install both the library and SSHFS program from the Dokan site:

https://dokan-dev.github.io/

There is also a commercial product that has the same functionality called ExpanDrive:

https://www.expandrive.com/desktop/