Mounting RDS to Your Server via SSHFS
Overview
The Research Data Store (RDS) at the University of Sydney provides secure, large-scale storage for research projects. By mounting RDS to your local machine / remote server using SSHFS (SSH Filesystem), you can interact with your research data as if it were a local directory — no manual file transfers required.
This guide walks you through mounting any RDS project to your local machine.
Prerequisites
Before you begin, make sure you have:
- A valid UniKey (e.g.
abcd1234) and access to your RDS project - SSHFS installed on your machine
- VPN access (if working off-campus) — connect to the University of Sydney VPN first
- A terminal (macOS: Terminal / iTerm2, Linux: any shell)
What is a UniKey? Your UniKey is your University of Sydney login username (e.g.
abcd1234). It's the same credential you use for university systems and email.
Step 1 — Install SSHFS
macOS
Install via Homebrew:
brew install macfuse sshfs
Note: macFUSE requires a system extension approval. Go to System Settings → Privacy & Security and allow the macFUSE kernel extension after installation, then restart your machine.
Ubuntu / Debian Linux
sudo apt update
sudo apt install sshfs
Fedora / RHEL / CentOS
sudo dnf install sshfs
Step 2 — Create the Mount Point
You need a local directory where the RDS will be mounted. Create it if it doesn't exist:
mkdir -p ~/mnt/rds/PRJ-<Project_Code>
Replace <Project_Code> with your actual RDS project code (e.g. MyProject_1, ClimateX_1). This creates a nested directory structure under your home folder:
~/mnt/
└── rds/
└── PRJ-<Project_Code>/ ← RDS will appear here
Step 3 — Mount the RDS
Run the following sshfs command to mount the remote RDS directory:
sshfs <UniKey>@research-data-int.sydney.edu.au:/rds/PRJ-<Project_Code> ~/mnt/rds/PRJ-<Project_Code>/
Replace the placeholders before running:
| Placeholder | What to replace with | Example |
|---|---|---|
<UniKey> |
Your University of Sydney username | abcd1234 |
<Project_Code> |
Your RDS project code (without PRJ-) |
MyProject_1 |
Breaking Down the Command
| Part | Meaning |
|---|---|
sshfs |
The SSHFS command |
<UniKey> |
Your UniKey username |
@research-data-int.sydney.edu.au |
The RDS internal SSH server (on-campus or via VPN) |
:/rds/PRJ-<Project_Code> |
The remote path of your RDS project |
~/mnt/rds/PRJ-<Project_Code>/ |
Your local mount point |
Step 4 — Verify the Mount
Check that the mount was successful:
ls ~/mnt/rds/PRJ-<Project_Code>/
You should see the contents of your RDS project directory. You can also confirm with:
df -h | grep PRJ-<Project_Code>
Step 5 — Working with Mounted Data
Once mounted, you can use the RDS directory just like any local folder:
# Copy a file to RDS
cp my_results.csv ~/mnt/rds/PRJ-<Project_Code>/
# List files
ls -lh ~/mnt/rds/PRJ-<Project_Code>/
# Open in a file manager (macOS)
open ~/mnt/rds/PRJ-<Project_Code>/
# Open in a file manager (Linux)
xdg-open ~/mnt/rds/PRJ-<Project_Code>/
Step 6 — Unmounting the RDS
When you're done, always unmount cleanly to avoid data corruption:
macOS
umount ~/mnt/rds/PRJ-<Project_Code>
Or using diskutil:
diskutil unmount ~/mnt/rds/PRJ-<Project_Code>
Linux
fusermount -u ~/mnt/rds/PRJ-<Project_Code>
Optional: Useful SSHFS Options
You can enhance the mount command with additional flags:
sshfs <UniKey>@research-data-int.sydney.edu.au:/rds/PRJ-<Project_Code> ~/mnt/rds/PRJ-<Project_Code>/ \
-o reconnect \
-o ServerAliveInterval=15 \
-o ServerAliveCountMax=3 \
-o follow_symlinks
| Flag | Description |
|---|---|
-o reconnect |
Automatically reconnect if the connection drops |
-o ServerAliveInterval=15 |
Send keepalive every 15 seconds to prevent timeout |
-o ServerAliveCountMax=3 |
Disconnect after 3 missed keepalives |
-o follow_symlinks |
Follow symbolic links on the remote filesystem |
Optional: Auto-Mount Helper Function (macOS / Linux)
To avoid retyping the command every session, add a helper function to your shell profile.
Open ~/.zshrc (macOS) or ~/.bashrc (Linux) and add:
# Mount RDS project — usage: mount_rds <UniKey> <Project_Code>
mount_rds() {
local unikey=$1
local project=$2
mkdir -p ~/mnt/rds/PRJ-${project}
sshfs ${unikey}@research-data-int.sydney.edu.au:/rds/PRJ-${project} \
~/mnt/rds/PRJ-${project}/ \
-o reconnect -o ServerAliveInterval=15
echo "RDS mounted at ~/mnt/rds/PRJ-${project}"
}
Then reload your shell:
source ~/.zshrc # or source ~/.bashrc
Call it anytime you need to connect:
mount_rds <UniKey> <Project_Code>
Troubleshooting
❌ Connection refused or Host unreachable
- Make sure you're on campus or connected to the University VPN
- Check that the hostname is correct:
research-data-int.sydney.edu.au
❌ Permission denied
- Confirm your UniKey username is correct
❌ Mount point is busy / can't unmount
# Force unmount on Linux
fusermount -uz ~/mnt/rds/PRJ-<Project_Code>
# Force unmount on macOS
sudo umount -f ~/mnt/rds/PRJ-<Project_Code>
❌ macFUSE not loading on macOS Ventura / Sonoma
Go to System Settings → Privacy & Security → Security and click Allow next to the macFUSE system extension. A restart may be required.
Summary
# 1. Create mount point
mkdir -p ~/mnt/rds/PRJ-<Project_Code>
# 2. Mount RDS
sshfs <UniKey>@research-data-int.sydney.edu.au:/rds/PRJ-<Project_Code> ~/mnt/rds/PRJ-<Project_Code>/
# 3. Work with your data
ls ~/mnt/rds/PRJ-<Project_Code>/
# 4. Unmount when done (Linux)
fusermount -u ~/mnt/rds/PRJ-<Project_Code>
# 4. Unmount when done (macOS)
umount ~/mnt/rds/PRJ-<Project_Code>
Further Resources
For support, contact the Sydney Informatics Hub or the University IT Service Desk.