Connecting to the Cluster

SSH setup, keys, and remote access

Modified

2026-01-31

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

Replace <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.165

MobaXterm (recommended for beginners)

MobaXterm is a free terminal for Windows with a nice interface:

  1. Download and install MobaXterm (Home Edition is free)
  2. Click “Session” → “SSH”
  3. Remote host: 10.10.11.165
  4. Username: your cluster username
  5. 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 ~]$
  1. Enter passwd and hit enter.
  2. 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)
  3. 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.165

Enter 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
exit

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: ~/.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 bcl

Or:

ssh bipscluster

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

VS Code

VS Code works similarly with the Remote - SSH extension.

Setup:

  1. Install VS Code and the “Remote - SSH” extension
  2. Click the green button in the bottom-left corner (or Cmd/Ctrl + Shift + P → “Remote-SSH: Connect to Host”)
  3. Select your cluster from the list (based on your SSH config)
  4. VS Code opens connected to the cluster
TipInstall extensions on the remote

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

Then 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:

  • ls lists the contents of your current directory (you start in /srv/home/<username>)
    • ls -lh does the same but with one line per file or directory and additional information
    • ls -lha similarly also shows “hidden” files (everything starting with . in the filename)
  • mkdir example creates a new directory called example
  • cd example moves you into the directory example
  • cp and mv copy and move files respectively. Careful with mv, 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: