Dahao's Personal Website

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:

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

Permission denied

❌ 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.