How to Connect to a Cumulus Server
⚠️⚠️⚠️ WARNING: This server must only be used for course activities. Unauthorized use for private projects will result in immediate loss of access and potential disciplinary action.
What is Cumulus?
Cumulus is a Linnaeus University cloud computing platform that provides virtual servers for educational and research purposes. Depending on your role and needs, you may receive a pre-configured server or create one yourself.
Each server typically includes:
- An Ubuntu Linux server running in the cloud
- Root-level access to install software and configure services
- A unique DNS name
cuXXXX.camp.lnu.sefor university-internal or VPN-accessible serverscuXXXX.cloud.lnu.sefor public, internet-facing services
- Web connectivity
- Servers connected to the Cumulus campus network are accessible from within the university network. Access from outside requires a VPN connection.
- Servers connected to the Cumulus public network are accessible directly from the internet.
- SSH access
- Secure remote access (via SSH) is available from the university network. A VPN connection is required when connecting from outside the university network.
What you can do with your Cumulus server:
- Deploy web applications and APIs
- Learn Linux system administration
- Practice server configuration and security
- Host course projects accessible from anywhere on the internet
- Experiment with different technologies without affecting your personal computer
Important limitations:
- Access requires connection to the university VPN
- The server is for course-related activities only - not personal projects
- Your server and data may be reset between courses
- Resource usage is monitored and limited
Think of Cumulus as your personal sandbox server where you can safely learn and experiment with real-world server technologies in a controlled environment.
Step 1: Verify SSH Availability
Before you can connect to your Cumulus server, make sure that the ssh command
is available in your terminal.
Windows Instructions
If you're using Windows 10 or later, the built-in PowerShell or Command Prompt usually includes SSH, but we recommend using Git Bash as your terminal (this guide assumes you're using a Bash terminal).
Check if SSH is installed:
Open Git Bash (or your preferred terminal) and run:
If you see a version number (e.g., OpenSSH_9.9p1, OpenSSL 3.2.3 3 Sep 2024),
you're good to go and can proceed to Step 2.
If SSH is not available, you have several options:
- Install OpenSSH Client via Windows Features (Settings → Apps → Optional Features)
- Use Windows Terminal with PowerShell or Command Prompt
- Install Windows Subsystem for Linux (WSL) - provides a complete Linux environment with native SSH support
- Alternatively, install PuTTY, though this guide assumes OpenSSH command-line tools
macOS Instructions
SSH is pre-installed on macOS. You can verify it's available by opening Terminal and running:
If you see a version number, you're ready to proceed to Step 2.
Linux Instructions
SSH is typically pre-installed on most Linux distributions. You can verify it's available by opening your terminal and running:
If you see a version number, you're ready to proceed to Step 2.
If SSH is not installed, you can install it using your distribution's package manager:
Ubuntu/Debian:
Fedora:
Arch Linux:
Step 2: Download Your Identity File from GitLab
To access your personal server in the Cumulus cloud via SSH, you need an identity file (private key). This file is provided through a GitLab project.
Locate and download the identity file:
- Go to the Secrets project in GitLab
- In this project, you will find:
- Your private key file (named something like
id_cumulus_xxx) - The IP address of your server
- The DNS name assigned to your server
- Your private key file (named something like
- Download the private key file (
id_cumulus_xxx) to a known location on your computer
Keep this file safe - you'll need it in the next step.
Step 3: Create the .ssh Directory
The .ssh directory is a standard location for storing SSH keys and configuration
files. If it doesn't already exist, you need to create it.
Windows (Git Bash) Instructions
Open Git Bash and run:
This creates the .ssh directory in your home folder if it doesn't already exist.
The -p flag ensures no error occurs if the directory is already there.
macOS Instructions
Open Terminal and run:
This creates the .ssh directory in your home folder if it doesn't already exist.
The -p flag ensures no error occurs if the directory is already there.
Linux Instructions
Open your terminal and run:
This creates the .ssh directory in your home folder if it doesn't already exist.
The -p flag ensures no error occurs if the directory is already there.
Step 4: Move the Identity File to .ssh Directory
Now you need to move the downloaded identity file to the .ssh directory.
Windows (Git Bash) Instructions
In Git Bash, navigate to where you downloaded the file (e.g., Downloads folder)
and move it to .ssh:
Replace id_cumulus_xxx with the actual filename of your private key.
If your file is in a different location, adjust the path accordingly:
macOS Instructions
In Terminal, move the file from your Downloads folder to .ssh:
Replace id_cumulus_xxx with the actual filename of your private key.
If your file is in a different location, adjust the path accordingly.
Linux Instructions
In your terminal, move the file from your Downloads folder to .ssh:
Replace id_cumulus_xxx with the actual filename of your private key.
If your file is in a different location, adjust the path accordingly.
Step 5: Set Correct Permissions on the Identity File
Setting the correct permissions ensures that your private key is only readable by you. SSH will refuse to use the key if it's accessible by others, as this would pose a security risk.
Windows (Git Bash) Instructions
In Git Bash, run:
Replace id_cumulus_xxx with the actual filename of your private key.
Note: When using Git Bash, chmod 600 works as expected and ensures your
key is accepted by SSH, even though Windows handles file permissions differently
under the hood.
macOS Instructions
In Terminal, run:
Replace id_cumulus_xxx with the actual filename of your private key.
This command sets the file permissions so that only you (the owner) can read and write the file, while removing all permissions for group and others.
Linux Instructions
In your terminal, run:
Replace id_cumulus_xxx with the actual filename of your private key.
This command sets the file permissions so that only you (the owner) can read and write the file, while removing all permissions for group and others.
Step 6: Connect to Your Cumulus Server via SSH
Once your identity file is in place and has the correct permissions, you can connect to your personal server in the Cumulus cloud using SSH.
Find your server's address:
In the GitLab Secrets project, you will find either:
- The DNS name of your server (recommended), e.g.
cuXXXX.camp.lnu.se - Or the IP address, e.g.
172.27.XXX.XXX
Connect using SSH:
Open your terminal (Git Bash on Windows, Terminal on macOS/Linux) and run:
Replace:
id_cumulus_xxxwith the actual filename of your private keycuXXXX.camp.lnu.sewith your server's DNS name (or IP address)
📌 Example
If this is your first time connecting, you may be asked to confirm the host's
fingerprint. Type yes to continue.
🔧 Troubleshooting: Remove a Previously Registered Key
If you've connected to your server before and the host key has changed (for example, due to a reinstallation), SSH may refuse to connect and show a warning about a mismatched key.
To fix this, remove the old key from your known hosts file:
Replace cuXXXX.camp.lnu.se with your server's actual DNS name or IP address.
This command deletes the outdated entry from ~/.ssh/known_hosts, allowing
you to reconnect without errors.
✅ What Happens When You Successfully Connect
If the SSH connection is successful, you'll see a welcome message from the Ubuntu operating system, along with system information such as memory usage, IP address, and login history.
You will land in your home directory, typically /home/ubuntu, and the prompt
will look something like:
From here, you can start working on your server — installing packages, running applications, or setting up web services.
Step 7: Update Package Lists
Before installing any software on your Cumulus server, it's good practice to update the package lists. This ensures that you get the latest available versions of packages from the Ubuntu repositories.
You are logged in as a regular user (ubuntu), so administrative commands like
apt update require sudo.
Run the following command:
This command fetches the most recent information about available packages and updates, which is necessary before installing tools like Docker, Node.js, npm, and nginx.
You only need to run this once before installing multiple packages. There's no need to repeat it before each installation unless a significant amount of time has passed or you've added new repositories.