Skip to main content

User Onboarding

This guide covers the complete process of onboarding new users to our server infrastructure, from initial setup to first login.

Prerequisites

VPN Access

Before you can access the servers, you must be connected to the VPN.

Important: You need to set up VPN access first. Follow the instructions at: Northeastern VPN Setup Guide

Once VPN is configured and connected, proceed with the steps below.


Step 1: Generate SSH Key Pair

Each user needs to generate an SSH key pair on their local machine. The public key will be shared with the developer team for server access setup.

For macOS Users

  1. Open Terminal (Applications → Utilities → Terminal)

  2. Check if SSH key already exists:

    ls -la ~/.ssh

    If you see files like id_rsa and id_rsa.pub, you may already have a key pair. You can either use the existing one or generate a new one.

  3. Generate a new SSH key pair:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • When prompted, press Enter to accept the default file location (~/.ssh/id_rsa)
    • Optionally, enter a passphrase for extra security (recommended)
    • Confirm the passphrase if you entered one
  4. Display your public key:

    cat ~/.ssh/id_rsa.pub

    Copy the entire output (it starts with ssh-rsa and ends with your email).

  5. Share the public key with the developer team (via email, Slack, or your preferred communication channel).

For Windows Users

Option A: Using PowerShell (Windows 10/11)

  1. Open PowerShell (Right-click Start → Windows PowerShell or search for PowerShell)

  2. Check if SSH key already exists:

    ls ~/.ssh

    If you see files like id_rsa and id_rsa.pub, you may already have a key pair.

  3. Generate a new SSH key pair:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • When prompted, press Enter to accept the default file location (C:\Users\YourUsername\.ssh\id_rsa)
    • Optionally, enter a passphrase for extra security (recommended)
    • Confirm the passphrase if you entered one
  4. Display your public key:

    cat ~/.ssh/id_rsa.pub

    Copy the entire output (it starts with ssh-rsa and ends with your email).

  5. Share the public key with the developer team.

Option B: Using Git Bash (Alternative)

If you have Git for Windows installed:

  1. Open Git Bash

  2. Generate SSH key:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. Display public key:

    cat ~/.ssh/id_rsa.pub
  4. Share the public key with the developer team.


Step 2: Developer Setup (Server-Side)

After receiving the user's public SSH key, a developer needs to set up the user account on the server. Follow these steps:

Prerequisites for Developer

  • SSH access to the target server
  • Sudo privileges on the server

Setup Commands

Replace test_user with the actual username (e.g., ra_user, john_doe, etc.)

  1. SSH into the server:

    ssh developer@<server_ip>
  2. Create the user account:

    sudo adduser test_user
    • Follow the prompts to set a password (this will be used for sudo operations)
    • Fill in user information as needed
  3. Create SSH directory:

    sudo mkdir -p /home/test_user/.ssh
  4. Set proper permissions on .ssh directory:

    sudo chmod 700 /home/test_user/.ssh
  5. Add the public key to authorized_keys:

    sudo nano /home/test_user/.ssh/authorized_keys
    • Paste the user's public SSH key (the one they shared)
    • Save and exit (Ctrl+X, then Y, then Enter)
  6. Set proper permissions on authorized_keys:

    sudo chmod 600 /home/test_user/.ssh/authorized_keys
  7. Change ownership of .ssh directory:

    sudo chown -R test_user:test_user /home/test_user/.ssh
  8. Add user to docker group (if Docker access is needed):

    sudo usermod -aG docker test_user

Adding User to Groups

To add a user to additional groups, use the following command:

sudo usermod -aG <group_name> test_user

Common Groups:

GroupPurpose
dockerAllows running Docker commands without sudo
sudoGrants sudo privileges to the user
www-dataWeb server access (for Apache/Nginx)

Add user to multiple groups at once:

sudo usermod -aG docker,sudo test_user

View user's current groups:

groups test_user

Note: The user needs to log out and log back in for group changes to take effect.

Verification

The developer should verify the setup by testing SSH access (if possible) or confirming the file permissions:

ls -la /home/test_user/.ssh

Expected output should show:

  • .ssh directory with permissions drwx------
  • authorized_keys file with permissions -rw-------
  • Both owned by test_user:test_user

Step 3: User Login Instructions

Once the developer has completed the server setup, you can connect to the server using SSH.

General Server Login

Important: Make sure you are connected to the VPN before attempting to connect.

ssh test_user@<server_ip>

Example:

ssh ra_user@129.10.156.97

On first connection, you'll be prompted to verify the server's fingerprint. Type yes to continue.

SSH Tunnel for LLM Model Access

If you need to access an LLM model running on the server from your local machine, use SSH port forwarding:

ssh -L <local_port>:localhost:<server_port> test_user@<server_ip>

Example:

ssh -L 8000:localhost:8000 ra_user@129.10.156.97

This command:

  • Creates a tunnel from your local port 8000 to the server's port 8000
  • After connecting, you can access the LLM service at http://localhost:8000 on your local machine
  • Replace 8000 with the actual port number if different

Troubleshooting

Connection Refused

  • Check VPN connection: Ensure you're connected to the VPN
  • Verify server IP: Confirm the server IP address with the developer
  • Check firewall: Contact the infrastructure team if firewall rules might be blocking access

Permission Denied (publickey)

  • Verify public key: Ensure the developer added the correct public key
  • Check key file: Make sure you're using the correct private key
  • Key permissions: On macOS/Linux, ensure your private key has correct permissions:
    chmod 600 ~/.ssh/id_rsa

SSH Key Not Found

  • Specify key explicitly:
    ssh -i ~/.ssh/id_rsa test_user@<server_ip>

Port Already in Use (SSH Tunnel)

If you get an error that the local port is already in use:

  • Use a different port:
    ssh -L 8001:localhost:8000 test_user@<server_ip>
  • Find and kill the process using the port (macOS/Linux):
    lsof -ti:8000 | xargs kill -9

Next Steps

After successfully logging in:

  1. Verify Docker access (if applicable):

    docker ps
  2. Check your home directory:

    ls -la ~
  3. Read the A6000 Server Guide for working with LLMs on the A6000 server

  4. Read the Blackwell Server Guide for working with LLMs on the Blackwell server


Support

If you encounter any issues during onboarding, contact the development team or infrastructure support.