Connecting to the Cluster

SSH setup, keys, and remote access

Modified

2026-04-07

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

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:

Open the Terminal app and follow these steps one by one:

  1. 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).

  2. Verify the key was created:

    Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

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

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

  1. Make sure the .ssh directory exists (it should if you already generated a key):

    New-Item -ItemType Directory -Force -Path $env:USERPROFILE\.ssh
  2. Open the config file in Notepad:

    notepad $env:USERPROFILE\.ssh\config

    If Notepad asks whether to create a new file, click Yes.

  3. Paste the following into Notepad, replacing <username> with your cluster username:

    Host bipscluster bcl
        HostName 10.10.11.165
        User <username>
        Port 22
  4. Save the file (Ctrl+S) and close Notepad.

  5. Verify the file was created correctly:

    Get-Content $env:USERPROFILE\.ssh\config

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: