How to Set up SSHFS for Mac
Photo by
Goran Ivos
on
Unsplash
This is a guide primarily meant to help Brown University Computer Science students get started with working remotely on department machines. If you are not part of this audience, the following instructions may still be useful, but be sure to strip out the Brown-specific parts.
- Install Homebrew (skip if already installed).
-
Install OSXFuse (skip if already installed). Run
brew cask install osxfusein terminal to install. You may need to restart your computer for the install to take effect since this involves a system extension. -
Install SSHFS (skip if already installed). Run
brew install sshfsin terminal to install. -
In your home directory (
~), create a Makefile (make a new text file and name itMakefile). Contents are detailed at the bottom of this page.-
Make sure you put in your cs username in the file under
CS_USERNAME. -
LOCAL_DIRis a file path where you want to mount SSHFS (there should be no existing folder for file under that file path). You probably don’t have to change this. -
Set
CODE_EDITORto the editor of your choice:- put
atomif you want to use Atom -
put
codeif you want to use VSCode (make sure to installcodecommand to PATH; here are instructions on how to do this) -
put
sublif you want to use Sublime (ifmake open-in-editordoesn’t work for you later on, try looking at this)
- put
-
Make sure you put in your cs username in the file under
-
In terminal under your home directory, run
make keyand input the password to your ssh private key. This way, you won’t have to enter your ssh password every time you ssh. -
In terminal under your home directory, run
make ssh. Make sure you can log in properly. (You may need to enter you Banner password). Exit ssh by running the commandexit. -
In terminal under your home directory, run
make mount. This should mount the courses folder from CIT lab machines to the directory specified in the Makefile. If you get security prompts, just allow everything. -
In terminal under your home directory, run
make open-in-editor. This should open the mounted course folder in the code editor of your choice. (If you have problems with this, try looking at the links in step 4.) - Happy coding! Be sure to read the notes below to avoid/fix issues!
Notes:
-
To safely unmount/disconnect the sshfs drive, run
make unmountin your home directory in terminal. -
If you get errors with
make mount, try runningmake unmountbefore runningmake mountagain. -
You will need to compile, run, and submit your CS work through
SSH
(in case you forgot, there a handly
make sshcommand in the Makefile!). Some things may work on your local machine, but a lot of stuff won’t. -
If you don’t want to input the password to you ssh key every time
you SSH or mount, running
make keywill work; however, you will have to run this every time you restart your Mac (shutting down makes your Mac ‘forget’ the password to your key).
Makefile Contents
# General Utils
# Dependencies: osxfuse, sshfs
# SSH & SSHFS Options
LOCAL_DIR = ~/Documents/CSCI # local location where network location will mount
CS_USERNAME = <insert username here!>
CODE_EDITOR = code # use code for vscode, atom for atom, subl for sublime
key:
ssh-add -K ~/.ssh/id_rsa
open-in-editor: $(LOCAL_DIR)
$(CODE_EDITOR) $(LOCAL_DIR)
mount:
mkdir -pv $(LOCAL_DIR)
sshfs $(CS_USERNAME)@pk-ssh.cs.brown.edu:course $(LOCAL_DIR) -oauto_cache,reconnect,defer_permissions,noappledouble,negative_vncache,volname=CSCI
unmount:
umount -f $(LOCAL_DIR)
rmdir $(LOCAL_DIR)
ssh: key
ssh -AXY $(CS_USERNAME)@pk-ssh.cs.brown.edu