Skip to main content

How to Connect and Use Resources on Expanse

A step-by-step guide for students getting started on SDSC Expanse: registering for an ACCESS ID, being added to a project allocation, enrolling in two-factor authentication, logging in through the Expanse User Portal or SSH, and starting a JupyterLab session.

Using CAIDA Learning Modules on Expanse: Student Guide

SDSC Expanse is allocated through ACCESS, the NSF-funded national cyberinfrastructure program. Getting onto it takes three steps: register for an ACCESS account, get added to a project allocation, and enroll in two-factor authentication. After that you can log in and start a notebook.

Getting an ACCESS Account

  1. Register at https://account.access-ci.org/register. Use your institution or university email address.

  2. Send your ACCESS ID to your instructor or principal investigator so they can add you to the project allocation.

    PIs and co-PIs add users to a project through Manage Allocations in the ACCESS portal — you cannot add yourself.

    Forgot your password? Reset it at https://account.access-ci.org/password.

  3. If you are not joining an existing class project, request your own allocation through the ACCESS Allocation Request System. An Explore or Discover tier request is lightweight and enough to get started. Alternatively, email consult@sdsc.edu for an SDSC trial account — the fastest path to a shell prompt.

    Note: CPU and GPU hours are allocated separately. An Expanse CPU award does not include GPU hours.

Enrolling in Two-Factor Authentication

Expanse asks for a time-based one-time password (TOTP) code every time you log in, so enroll before your first login attempt.

  1. Install an authenticator app on your phone — Google Authenticator, Duo Mobile, or any app that can import a TOTP secret from a QR code.

  2. Go to https://passive.sdsc.edu and choose Log In Using Globus.

  3. On the Globus page, select ACCESS CI (formerly XSEDE) from the organization menu — not your university or institution. This is the single most common enrollment mistake.

    Globus login page with ACCESS CI selected as the organization

  4. Log in with your ACCESS ID and password. If Globus offers you a choice of identities, pick the one ending in @access-ci.org.

    Globus identity selection screen, with the access-ci.org identity highlighted

  5. Click Manage 2FA and follow the instructions to pair your authenticator app by scanning the QR code.

    Wait up to 15 minutes after enrolling. The change has to propagate to the login nodes before it takes effect.


Logging In

There are two ways in. The portal requires nothing installed on your machine; SSH is worth setting up once you are working regularly.

Option 1: Expanse User Portal

  1. Go to https://portal.expanse.sdsc.edu/, choose ACCESS CI (formerly XSEDE) from the pull-down menu, and click Continue. As above, do not choose your university.

  2. Log in with your ACCESS ID and password, selecting your @access-ci.org identity if prompted.

  3. Click expanse Shell Access to open a terminal on a login node in your browser.

    Expanse User Portal pinned apps, with expanse Shell Access highlighted

    The portal is an Open OnDemand deployment. Alongside shell access it offers file management, job submission and monitoring, and launchers for Jupyter, MATLAB, and RStudio.

Option 2: SSH

  1. Open a terminal on your own machine and connect:

    ssh <your_username>@login.expanse.sdsc.edu
    
  2. Enter your ACCESS password, then the six-digit code from your authenticator app — use the entry listed under sdsc.edu: <your_username>.

    Terminal showing the Expanse SSH password prompt

    Adding this block to ~/.ssh/config on your local machine lets you connect with just ssh expanse. It also reuses a single authenticated connection for four hours, so you enter your TOTP code once instead of once per connection:

    Host expanse
        HostName login.expanse.sdsc.edu
        User <your_username>
        ServerAliveInterval 60
        ControlMaster auto
        ControlPath ~/.ssh/cm-%r@%h:%p
        ControlPersist 4h
    

    Note: Login nodes are shared. Editing files, running git, and submitting jobs are fine; running your analysis on them is not. Use an interactive session or a batch job instead.

Confirming Your Project Allocation

Once you have a shell, check which projects you belong to:

expanse-client user

The PROJECT column gives the project ID you pass to Slurm as --account.

expanse-client user output listing projects, states, and balances


Starting a Jupyter Notebook

Notebooks run on compute nodes, not on login nodes. There are two ways to start one.

Option 1: Expanse User Portal

From https://portal.expanse.sdsc.edu/, open the Jupyter app and fill in the form — project, partition, cores, memory, and time limit. The portal submits the Slurm job for you and gives you a button to connect when it starts.

Option 2: galyleo

From a login node shell:

export PATH="/cm/shared/apps/sdsc/galyleo:${PATH}"

galyleo launch --account <project> --partition shared \
    --cpus 4 --memory 16 --time-limit 01:00:00 \
    --conda-yml environment.yml

Replace <project> with your project ID from the previous step. Instead of --conda-yml, you can point galyleo at an existing environment with --conda-env <name> or at a container with --sif <path>.

galyleo queues a Slurm job and prints a token-protected URL on expanse-user-content.sdsc.edu. Open it in your browser; the page tracks the job through In Queue, Running, and Mapped. Your notebook is ready once it reaches Proxied.

galyleo Satellite Reverse Proxy status page showing job progress

Closing the browser tab does not stop the job. It keeps running and keeps charging your allocation. Stop it explicitly:

squeue -u <your_username>
scancel <JOBID>

Expanse charges for resources reserved, not resources used — an idle notebook costs the same as a busy one.


Cloning a NIDS Module

From a login node shell, clone the module repository your instructor gave you into your home directory. For example:

git clone https://github.com/CAIDA/nids-expanse-2026.git

Then open the notebook from the Jupyter file browser and start working.

Going Further

This page stops once you have a notebook running. The nids-expanse-2026 repository carries on from there, in four lessons:

  • 0_hello_world_to_expanse — account setup and first login, the material summarized above
  • 1_setting_up_env — configuring your shell environment on Expanse
  • 2_running_juypter_notebook — running the demo notebook
  • 3_running_batch_job — submitting batch jobs with Slurm

Note: That repository was written for a specific course and hardcodes its project ID and instructor file paths. If you are on a different allocation, substitute your own project ID and paths.


Need help with Expanse? See Expanse Help for consulting, documentation, and training resources.