Connecting to the Cluster
SSH setup, keys, and remote access
Before you can use the cluster, you need to connect to it. This guide covers everything from getting an account to setting up comfortable remote access.
Getting an account
Cluster access requires an account created by the administrator. Contact Lukas to request access. You’ll receive:
- A username
- An initial password (which you will change after logging in)
Connecting with SSH
SSH (Secure Shell) is how you connect to the cluster. It gives you a command-line terminal on the head node.
macOS and Linux
Open a terminal and run:
ssh <username>@10.10.11.165Replace <username> with your cluster username. Enter your password when prompted.
Windows
Windows doesn’t have a built-in terminal with SSH (older versions), so you have a few options:
Windows Terminal + PowerShell (Windows 10/11)
Modern Windows has SSH built-in. Open PowerShell or Windows Terminal and run:
ssh <username>@10.10.11.165MobaXterm (recommended for beginners)
MobaXterm is a free terminal for Windows with a nice interface:
- Download and install MobaXterm (Home Edition is free)
- Click “Session” → “SSH”
- Remote host:
10.10.11.165 - Username: your cluster username
- Click OK, enter password when prompted
MobaXterm also includes a file browser for easy file transfers.
PuTTY
PuTTY is another popular option, though more basic than MobaXterm.
Connecting for the first time
Once you have logged in, you will be greeted by a shell prompt like this
[username@hnode ~]$
- Enter
passwdand hit enter. - You will be asked for your current password. Type it in and hit enter again. (Note that your password will not be shown when typed, that’s for security reasons)
- You will then be asked for your new password, which you will also not see while typing. Confirm it and hit enter.
Tip: You can use your password manager which of course you are using to generate a good, long, memorable password and copypaste it from there
Setting up SSH keys (no more passwords)
Typing your password every time gets old fast. SSH keys let you authenticate automatically.
Step 1: Generate a key pair
macOS/Linux:
ssh-keygen -t ed25519 -C "your_email@example.com"Press Enter to accept the default location (~/.ssh/id_ed25519). You can set a passphrase for extra security or leave it empty.
Windows (PowerShell):
ssh-keygen -t ed25519 -C "your_email@example.com"Same process – accept defaults, optional passphrase.
Step 2: Copy your key to the cluster
macOS/Linux:
ssh-copy-id <username>@10.10.11.165Enter your password one last time. After this, you can connect without a password.
Windows:
Windows doesn’t have ssh-copy-id, so do it manually:
# Display your public key
type $env:USERPROFILE\.ssh\id_ed25519.pub
# Copy the output, then SSH in with your password
ssh <username>@10.10.11.165
# On the cluster, add your key
mkdir -p ~/.ssh
echo "PASTE_YOUR_KEY_HERE" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
exitNow try connecting again – no password needed.
SSH config (easier connections)
Instead of typing ssh <username>@10.10.11.165 every time, you can create a shortcut.
Create or edit your SSH config
macOS/Linux: ~/.ssh/config
Windows: C:\Users\<YourName>\.ssh\config
Add this:
Host bipscluster bcl
HostName 10.10.11.165
User <username>
Port 22
Replace <username> with your cluster username.
Now you can connect with just:
ssh bclOr:
ssh bipsclusterUsing IDEs for remote work
For most users, working through an IDE is more comfortable than a plain terminal. Both Positron and VS Code support remote SSH connections.
Positron (recommended)
Positron is excellent for R and Python, with a focus on data science workflows (data viewer, variable explorer, etc.).
Setup:
- Install Positron on your local machine
- Open the Command Palette (Cmd/Ctrl + Shift + P)
- Search for “Remote-SSH: Connect to Host”
- Select
bcl(or whatever you named it in your SSH config) - Positron opens a new window connected to the cluster
You can now edit files, run R/Python, and use the integrated terminal – all on the cluster.
VS Code
VS Code works similarly with the Remote - SSH extension.
Setup:
- Install VS Code and the “Remote - SSH” extension
- Click the green button in the bottom-left corner (or Cmd/Ctrl + Shift + P → “Remote-SSH: Connect to Host”)
- Select your cluster from the list (based on your SSH config)
- VS Code opens connected to the cluster
When connected remotely, install extensions like “R” or “Python” on the remote side (not just locally) for full functionality.
When to use terminal vs IDE
| Use case | Recommendation |
|---|---|
| Quick commands, job submission | Terminal (SSH) |
| Editing code, development | Positron or VS Code |
| Interactive R/Python sessions | Positron (best data viewer) |
| Long-running sessions | Terminal + tmux |
Troubleshooting
“Connection refused” or timeout
- Check you’re on the BIPS network (or VPN if working remotely)
- Verify the hostname/IP is correct
- Contact the admin if the cluster might be down
“Permission denied (publickey)”
Your SSH key isn’t set up correctly. Either: - Use password authentication: ssh -o PubkeyAuthentication=no <username>@10.10.11.165 - Re-run ssh-copy-id to fix your key setup
Connection drops frequently
Add these lines to your SSH config to keep connections alive:
Host bcl bipscluster
HostName 10.10.11.165
User <username>
Port 22
ServerAliveInterval 60
ServerAliveCountMax 3
“Host key verification failed”
The cluster’s identity changed (rare, usually after maintenance). If you trust this is legitimate:
ssh-keygen -R 10.10.11.165Then connect again and accept the new host key.
Next steps
Once you are set up, feel free to take a look at the MIT website “The Missing Semester of Your CS Education” if you are not comfortable moving around in a terminal environment yet and want to learn more.
For a very quick start however it is perfectly fine to focus on these commands:
lslists the contents of your current directory (you start in/srv/home/<username>)ls -lhdoes the same but with one line per file or directory and additional informationls -lhasimilarly also shows “hidden” files (everything starting with.in the filename)
mkdir examplecreates a new directory calledexamplecd examplemoves you into the directoryexamplecpandmvcopy and move files respectively. Careful withmv, it’s easy to accidentally overwrite the wrong file.git clone <repo URL>clones your git repository to the current directory. The corresponding URL is displayed on every repo page on GitHub, GitLab, etc.
Let’s be honest, it’s fine to let ChatGPT give you a shell tutorial as well. When asked: You’re looking at a bash shell on Rocky Linux.
Otherwise, move on with the cluster docs:
- Quick Start with R – Get R running on a compute node
- Understanding the Cluster – Learn how the cluster works