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 (10/11)
Windows 10 and 11 have SSH built-in. Open the Terminal app (search for “Terminal” in the Start menu) and run:
ssh <username>@10.10.11.165Connecting 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:
Open the Terminal app and follow these steps one by one:
Generate your key pair:
ssh-keygen -t ed25519 -C "your_email@example.com"Press Enter to accept the default location, then press Enter twice more (to skip setting a passphrase, or type one if you want extra security).
Verify the key was created:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubYou should see a long line starting with
ssh-ed25519. This is your public key.
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 we’ll do it in one command. In your Terminal, run:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | ssh <username>@10.10.11.165 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"Replace <username> with your cluster username. Enter your password when prompted – this is the last time you’ll need it.
Now 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:
Edit the file ~/.ssh/config (create it if it doesn’t exist) and add the configuration shown below.
Windows:
Creating this file through the Windows file explorer is tricky (it tends to add a .txt extension and the .ssh folder is hidden). Use the Terminal instead – follow these steps one by one:
Make sure the
.sshdirectory exists (it should if you already generated a key):New-Item -ItemType Directory -Force -Path $env:USERPROFILE\.sshOpen the config file in Notepad:
notepad $env:USERPROFILE\.ssh\configIf Notepad asks whether to create a new file, click Yes.
Paste the following into Notepad, replacing
<username>with your cluster username:Host bipscluster bcl HostName 10.10.11.165 User <username> Port 22Save the file (Ctrl+S) and close Notepad.
Verify the file was created correctly:
Get-Content $env:USERPROFILE\.ssh\config
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-idto 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