Changes between Version 3 and Version 4 of User Guide/Portal


Ignore:
Timestamp:
Mar 4, 2026, 3:57:49 PM (10 hours ago)
Author:
editor
Comment:

Update portal guide: smaller images, more text, SSH keys/access/tunneling sections with external links

Legend:

Unmodified
Added
Removed
Modified
  • User Guide/Portal

    v3 v4  
    22= COSMOS Portal User Guide =
    33
    4 The [https://www.cosmos-lab.org/portal COSMOS Portal] is a web application for managing your testbed account, making reservations, and monitoring testbed resources. This guide covers the features available to regular users.
     4The [https://www.cosmos-lab.org/portal COSMOS Portal] is a web application for managing your testbed account, making reservations, and monitoring testbed resources. It is the primary interface for all COSMOS and ORBIT testbed users, from first-time registration through day-to-day experiment management. This guide covers the features available to regular users.
    55
    66The portal is accessible at '''https://www.cosmos-lab.org/portal'''
    77
     8----
     9
    810== Getting Started == #GettingStarted
    911
    10 === Creating an Account ===
     12=== Creating an Account === #CreateAccount
     13
     14Before you can use any COSMOS or ORBIT testbed resources, you need an account. Your account is associated with an organization (research group) and must be approved by your group's PI (Principal Investigator).
    1115
    12161. Go to [https://www.cosmos-lab.org/register_usr Register User]
    13172. Fill in your details:
    14    * '''Username''' -- 3-16 characters, lowercase letters, digits, and underscores (must start with a letter)
    15    * '''Name, Email, Phone''' -- your contact information
    16    * '''Organization''' -- select your research group from the dropdown (search to filter)
    17    * '''Password''' -- must be at least 8 characters with uppercase, lowercase, digit, and special character
    18    * '''Mailing List''' -- choose Full, Digest, or None
    19 3. You will receive a confirmation email -- click the link within 30 minutes to complete your request
    20 4. Your group PI will approve your request
    21 5. You will receive a final confirmation email once approved
    22 
    23 [[Image(portal-register.png, width=60%)]]
    24 
    25 If your organization is not listed and you are a faculty/staff member, ask your PI to [https://www.cosmos-lab.org/register_org register a new organization] first.
    26 
    27 === Logging In ===
     18   * '''Username''' -- 3-16 characters, must start with a letter. Only lowercase letters, digits, hyphens, and underscores are allowed. This becomes your Linux login name on all testbed nodes.
     19   * '''First Name, Last Name''' -- ASCII characters only
     20   * '''Email''' -- must be a valid institutional email. Some organizations enforce domain restrictions (e.g., only @university.edu addresses).
     21   * '''Phone''' -- include country code (e.g., +1 for US). The system auto-normalizes formats like (555) 123-4567.
     22   * '''Organization''' -- select your research group from the dropdown. You can type to search/filter the list.
     23   * '''Password''' -- minimum 8 characters and must contain uppercase, lowercase, digit, and a special character. The system also checks for common/weak passwords.
     24   * '''Mailing List''' -- choose Full (all announcements), Digest (weekly summary), or None
     253. Complete the CAPTCHA verification
     264. Check your email and click the activation link within 30 minutes
     275. After activation, your request is forwarded to your group PI and the global administrators for approval
     286. Once approved, you receive a confirmation email and can log in immediately
     29
     30[[Image(portal-register.png, width=40%)]]
     31
     32If your organization is not listed, ask your PI or faculty advisor to [https://www.cosmos-lab.org/register_org register a new organization] first. Organization registration follows a similar activation and approval workflow.
     33
     34=== Logging In === #Login
    2835
    29361. Go to [https://www.cosmos-lab.org/portal/login Portal Login]
     
    31383. You will be taken to the Dashboard
    3239
    33 [[Image(portal-login.png, width=40%)]]
    34 
    35 If you forgot your username or password, use the links on the login page to recover them via email.
     40[[Image(portal-login.png, width=30%)]]
     41
     42If you forgot your password, click '''Forgot Password''' on the login page, enter your username and email, and you will receive a reset link valid for 1 hour. If you forgot your username, click '''Forgot Username''' and enter your email address — all matching usernames will be sent to you.
     43
     44----
    3645
    3746== Dashboard == #Dashboard
    3847
    39 The Dashboard is your home page after logging in. It shows:
    40 
    41 * '''Profile card''' -- your name, username, email, organization, and member-since date
    42 * '''Quick links''' -- Edit Profile and SSH Keys
     48The Dashboard is your home page after logging in. It provides an at-a-glance summary of your account and testbed usage:
     49
     50* '''Profile card''' -- your name, username, email, organization, and the date your account was created
     51* '''Quick links''' -- direct access to Edit Profile and SSH Keys pages
    4352* '''Usage statistics''':
    44   * '''Disk Usage''' -- total storage used across all paths
    45   * '''Reservations''' -- total reservation count (all-time and last 4 weeks)
    46   * '''Login Time''' -- total session time and session count
    47 
    48 [[Image(portal-dashboard.png, width=80%)]]
     53  * '''Disk Usage''' -- total storage used across all NFS-mounted home directories, shown in gigabytes
     54  * '''Reservations''' -- total reservation count both all-time and for the last 4 weeks, helping you understand your testbed utilization
     55  * '''Login Time''' -- total SSH session time and number of login sessions across all testbed consoles
     56
     57Usage statistics are updated periodically (approximately every 24 hours) and may not reflect the most recent activity.
     58
     59[[Image(portal-dashboard.png, width=50%)]]
     60
     61----
    4962
    5063== Account Management == #Account
    5164
    52 === Edit Profile ===
    53 
    54 Click your name in the top-right corner and select '''Edit Profile''', or navigate to the Dashboard and click the Edit Profile link.
    55 
    56 You can update:
    57 * First and last name
    58 * Email address
    59 * Phone number
    60 
    61 [[Image(portal-profile.png, width=60%)]]
    62 
    63 === Change Password ===
    64 
    65 On the Edit Profile page, scroll down to the Change Password section:
    66 1. Enter your current password
    67 2. Enter and confirm your new password
    68 3. Click Save
    69 
    70 === SSH Keys ===
    71 
    72 Click your name in the top-right corner and select '''SSH Keys''' to manage your public keys for console access.
    73 
    74 * '''Upload a key''' -- paste your public key (supports ssh-rsa, ssh-ed25519, ecdsa, and other standard formats). The key is validated in real-time before upload.
    75 * '''View keys''' -- see all uploaded keys with their type and comment
     65=== Edit Profile === #Profile
     66
     67Click your name in the top-right corner and select '''Edit Profile''', or use the quick link on the Dashboard.
     68
     69You can update your first name, last name, email address, and phone number. Changes take effect immediately and are reflected in LDAP (the testbed's directory service), so updated email addresses will be used for all future notifications.
     70
     71[[Image(portal-profile.png, width=40%)]]
     72
     73=== Change Password === #Password
     74
     75On the Edit Profile page, scroll down to the Change Password section. Enter your current password, then your new password twice for confirmation. The same strength requirements as registration apply (8+ characters, mixed case, digit, special character, not a common pattern).
     76
     77=== SSH Keys === #SSHKeys
     78
     79SSH keys are essential for accessing testbed nodes during your reservations. The portal lets you manage your public keys from '''SSH Keys''' (accessible via the top-right user menu).
     80
     81* '''Upload a key''' -- paste your public SSH key. The portal validates the key format, type, and encoding in real-time before accepting it. Supported key types include ssh-rsa, ssh-ed25519, ecdsa-sha2-nistp256/384/521, and FIDO/U2F keys (sk-ssh-ed25519, sk-ecdsa).
     82* '''View keys''' -- see all your uploaded keys with their type and comment/label
    7683* '''Delete a key''' -- remove individual keys you no longer need
    7784
    78 You can upload multiple keys. These are used for SSH access to testbed consoles during your reservations.
    79 
    80 [[Image(portal-ssh-keys.png, width=60%)]]
     85You can upload multiple keys (e.g., one from your laptop and one from your desktop). These keys are deployed to all testbed consoles and nodes, giving you SSH access during active reservations.
     86
     87[[Image(portal-ssh-keys.png, width=40%)]]
     88
     89==== Generating SSH Keys ====
     90
     91If you don't already have an SSH key pair, you'll need to generate one. An SSH key pair consists of a '''private key''' (kept secret on your computer) and a '''public key''' (uploaded to the portal).
     92
     93'''On Linux or macOS:'''
     94{{{
     95ssh-keygen -t ed25519 -C "your_email@example.com"
     96}}}
     97This creates `~/.ssh/id_ed25519` (private) and `~/.ssh/id_ed25519.pub` (public). Copy the contents of the `.pub` file to paste into the portal.
     98
     99'''On Windows:'''
     100Use the built-in OpenSSH client (available in Windows 10/11) via PowerShell, or use [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTYgen] to generate a key pair. If using PuTTY, make sure to export the public key in OpenSSH format.
     101
     102'''Further reading:'''
     103* [https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent GitHub: Generating SSH Keys] -- comprehensive tutorial for all platforms
     104* [https://www.ssh.com/academy/ssh/keygen SSH Academy: ssh-keygen] -- reference for key generation options and best practices
     105* [https://wiki.archlinux.org/title/SSH_keys ArchWiki: SSH Keys] -- detailed guide covering key types, security considerations, and agent forwarding
     106
     107----
     108
     109== SSH Access to Testbed Nodes == #SSHAccess
     110
     111Once you have an approved reservation and your SSH key uploaded, you can connect to testbed nodes via SSH through the console server for your reserved domain.
     112
     113=== Basic SSH Connection ===
     114
     115The general pattern for connecting to a testbed node is:
     116{{{
     117ssh -J <username>@<console>.cosmos-lab.org <username>@<node>
     118}}}
     119
     120The `-J` flag sets up a '''jump host''' (also called a ''bastion host'' or ''proxy jump''), routing your SSH connection through the console server to reach the internal testbed node. For example, to connect to node1 in sandbox SB1:
     121{{{
     122ssh -J myuser@sb1.cosmos-lab.org myuser@node1-1
     123}}}
     124
     125You can also configure this permanently in your `~/.ssh/config`:
     126{{{
     127Host sb1-*
     128    User myuser
     129    ProxyJump myuser@sb1.cosmos-lab.org
     130
     131Host node1-1
     132    HostName node1-1
     133    User myuser
     134    ProxyJump myuser@sb1.cosmos-lab.org
     135}}}
     136
     137=== SSH Tunneling === #SSHTunnel
     138
     139SSH tunnels allow you to securely access services running on testbed nodes (such as web interfaces, Jupyter notebooks, or custom dashboards) from your local machine.
     140
     141'''Local port forwarding''' -- forward a port from a remote testbed node to your local machine:
     142{{{
     143ssh -L 8888:localhost:8888 -J myuser@sb1.cosmos-lab.org myuser@node1-1
     144}}}
     145This makes port 8888 on node1-1 accessible at `localhost:8888` on your machine. Useful for Jupyter notebooks, web UIs, and other services.
     146
     147'''Dynamic SOCKS proxy''' -- create a SOCKS proxy to route all traffic through a testbed node:
     148{{{
     149ssh -D 1080 -J myuser@sb1.cosmos-lab.org myuser@node1-1
     150}}}
     151Then configure your browser to use `localhost:1080` as a SOCKS5 proxy.
     152
     153'''Further reading on SSH tunneling and access:'''
     154* [https://www.ssh.com/academy/ssh/tunneling SSH Academy: SSH Tunneling] -- explanation of local, remote, and dynamic forwarding
     155* [https://www.ssh.com/academy/ssh/tunneling-example SSH Academy: Tunneling Examples] -- practical examples and use cases
     156* [https://man.openbsd.org/ssh OpenBSD: ssh manual page] -- the authoritative reference for all SSH options
     157* [https://www.digitalocean.com/community/tutorials/how-to-configure-custom-connection-options-for-your-ssh-client DigitalOcean: SSH Config Tutorial] -- guide to setting up `~/.ssh/config` for convenience
     158
     159----
    81160
    82161== Scheduler == #Scheduler
    83162
    84 The Scheduler lets you reserve testbed resources (domains/sandboxes) for your experiments.
    85 
    86 === Viewing the Calendar ===
    87 
    88 Navigate to '''Scheduler''' in the left sidebar. The calendar shows:
    89 * '''Day''' or '''Week''' view (toggle at the top)
    90 * Resources listed on the left, time slots across the top
    91 * Date navigation with Previous/Next/Today buttons and a date picker
    92 * Time is shown in your local timezone, with UTC and COSMOS Eastern Time displayed
    93 
    94 [[Image(portal-scheduler.png, width=80%)]]
    95 
    96 === Reservation Colors ===
     163The Scheduler lets you reserve testbed resources (domains and sandboxes) for your experiments. Reservations give you exclusive access to the testbed hardware during your time slot.
     164
     165=== Viewing the Calendar === #Calendar
     166
     167Navigate to '''Scheduler''' in the left sidebar. The calendar displays:
     168* '''Day''' or '''Week''' view -- toggle with the button at the top
     169* '''12-hour or 24-hour time''' -- toggle with the 12h/24h button; your preference is saved across sessions
     170* Resources listed vertically on the left, time slots (30-minute intervals) horizontally
     171* Date navigation with previous/next arrows, a Today button, and a date picker
     172* A clock bar showing your local timezone, UTC, and COSMOS Eastern Time
     173* Past time slots are grayed out and cannot be clicked
     174
     175[[Image(portal-scheduler.png, width=50%)]]
     176
     177=== Reservation Colors === #Colors
     178
     179The scheduler uses distinct colors to help you quickly identify reservation ownership and status:
    97180
    98181||= Color =||= Meaning =||
    99 || Green (solid) || Your approved reservation ||
    100 || Light green || Your pending reservation ||
    101 || Blue || Another user's approved reservation ||
    102 || Yellow || Another user's pending reservation ||
    103 || Red || Conflict (overlapping pending reservations) ||
    104 || Gray/Orange || Blackout/maintenance period ||
    105 
    106 === Creating a Reservation ===
    107 
    108 1. Click on an empty time slot in the calendar
    109 2. In the dialog, configure:
    110    * '''Start and end time''' -- select your desired time window
    111    * '''Summary''' (optional) -- a short description of your experiment
    112    * '''Participants''' (optional) -- search and add other users who should have access
    113    * '''Group reservation''' (optional) -- select a group to grant access to all members
     182|| '''Green''' || Your approved reservation — confirmed and ready to use ||
     183|| '''Purple''' || Your pending reservation — submitted, waiting for approval ||
     184|| '''Blue''' || Another user's approved reservation ||
     185|| '''Yellow''' || Another user's pending reservation ||
     186|| '''Red''' || Conflict — overlapping pending reservations from different users ||
     187|| '''Dark gray''' || Blackout period — testbed unavailable for maintenance ||
     188|| '''Orange''' || Scheduled maintenance window ||
     189
     190=== Creating a Reservation === #CreateReservation
     191
     1921. Click on an empty (non-grayed) time slot in the calendar for the resource you want
     1932. In the dialog that appears, configure:
     194   * '''Start and end date/time''' -- adjust using the date picker and time dropdown (respects your 12h/24h preference). You cannot create reservations in the past.
     195   * '''Summary''' (optional) -- a short description of your experiment or purpose
     196   * '''Invite users''' (optional) -- search by name or username to add participants who should have SSH access during your reservation
     197   * '''Group reservation''' (optional) -- toggle this to grant access to all members of a selected organization
    114198   * '''Recurrence''' (optional) -- set up weekly or monthly recurring reservations with an end date
    115 3. Click '''Submit''' -- your reservation appears as pending (light green or yellow)
    116 
    117 Reservations are approved automatically:
    118 * Requests made before noon are pre-approved for the following day by 2 PM
    119 * Other requests are approved at the start of the time slot (just-in-time)
    120 
    121 === Competing for a Slot ===
    122 
    123 If another user has a pending reservation on a slot you want, you can click that slot and select '''Compete for this slot'''. The system resolves conflicts based on usage -- users who have used less testbed time in the last two weeks are given priority. Avoid competing for slots less than 2 hours in the future.
    124 
    125 === Modifying or Canceling ===
    126 
    127 * Click on your reservation to view its details
    128 * '''Edit''' -- change the time, duration, or summary
    129 * '''Cancel''' -- remove a pending or approved reservation
    130 * '''Delete Series''' -- cancel all future occurrences of a recurring reservation
    131 
    132 === My Reservations ===
    133 
    134 Navigate to '''My Reservations''' in the sidebar to see:
    135 * Your usage statistics (total hours in the last 28 days)
    136 * A table of all upcoming reservations with resource, time, duration, and status
    137 * A cancel button for each reservation
    138 
    139 [[Image(portal-my-reservations.png, width=80%)]]
    140 
    141 == Status Pages == #Status
    142 
    143 Status pages appear in the sidebar '''only when you have an active or upcoming reservation''' (within 24 hours).
    144 
    145 === Node Status ===
    146 
    147 Shows the power state of all testbed nodes as a visual grid. This page is visible when you have any reservation.
    148 
    149 === RF Matrix ===
    150 
    151 Shows the RF attenuation matrix for sandbox SB4. This page is visible only when you have an SB4 reservation.
     1993. Click '''Submit'''
     200
     201Your reservation appears immediately as pending (purple). It will be approved automatically based on the following schedule:
     202* Requests submitted before noon Eastern Time are pre-approved for the following day by 2:00 PM
     203* Other requests are approved at the start of the reserved time slot (just-in-time approval)
     204
     205Each resource may have minimum and maximum reservation durations, which are displayed in the creation dialog.
     206
     207=== Competing for a Slot === #Compete
     208
     209If another user has a pending reservation on a slot you want, click their reservation and select '''Compete for this slot'''. The auto-approver resolves conflicts using a fairness algorithm based on recent usage — users who have consumed fewer testbed hours in the past two weeks are given priority. To ensure fair resolution, avoid competing for slots that start in less than 2 hours.
     210
     211=== Modifying or Canceling === #ModifyCancel
     212
     213Click on any of your reservations to view its details:
     214* '''Edit''' -- change the time, date, duration, participants, or summary. Note: editing resets the reservation to pending status for re-approval.
     215* '''Cancel''' -- remove a single reservation
     216* '''Delete Series''' -- cancel all future occurrences of a recurring reservation series
     217
     218=== My Reservations === #MyReservations
     219
     220Navigate to '''My Reservations''' in the sidebar for a consolidated view:
     221* Your usage statistics -- total reservation hours over the last 28 days
     222* A sortable table of all upcoming and recent reservations showing resource name, time, duration, and status
     223* Quick cancel buttons for each active reservation
     224
     225[[Image(portal-my-reservations.png, width=50%)]]
     226
     227----
     228
     229== Testbed Status == #Status
     230
     231Status pages appear in the sidebar '''only when you have an active or upcoming reservation''' (within 24 hours). This restriction ensures that experiment information is not exposed to users without current access. Global administrators can see all status pages at all times.
     232
     233=== Testbed Status === #TestbedStatus
     234
     235Shows the power state of all nodes in each testbed domain as a visual grid. Select a testbed from the dropdown — only testbeds for which you have an active reservation are shown.
     236
     237The grid displays nodes positioned by their physical coordinates (X/Y), grouped by type (Nodes, Servers, RF Devices, Virtual Machines). Each cell is color-coded:
     238* '''Green''' -- powered on
     239* '''Dark''' -- powered off
     240* '''Yellow''' -- unreachable (network issue)
     241* '''Gray''' -- not registered or unknown state
     242
     243Hover over any cell to see the node's name, FQDN, and current state. The grid auto-refreshes every 30 seconds.
     244
     245=== RF Matrix (SB4) === #RFMatrix
     246
     247The RF Matrix page is available only when you have a reservation for the SB4 sandbox. It visualizes and controls the JFW 50PMA-012 RF attenuation matrix.
    152248
    153249Features:
    154 * Visual network topology graph showing connections between ports and devices
    155 * Click on connections to set attenuation values (0-63 dB)
    156 * Toggle WiFi/SDR mode for each port
    157 * '''Reset All''' -- set all attenuations to 0 dB and WiFi mode
    158 * '''Save/Load configurations''' -- save your current matrix setup for reuse (public or private)
    159 * Configurations auto-refresh every 5 seconds
     250* Interactive network topology graph showing port connections and current attenuation values
     251* Click any connection to set its attenuation (0-63 dB)
     252* Toggle WiFi/SDR antenna mode per port
     253* '''Reset All''' -- set all attenuations to 0 dB and switch to WiFi mode
     254* '''Save/Load configurations''' -- save your matrix setup with a name for later reuse (can be public or private)
     255* The topology auto-refreshes every 5 seconds to reflect changes from all sources
     256
     257----
    160258
    161259== Directory == #Directory
    162260
    163 === Users ===
    164 
    165 Navigate to '''Users''' in the sidebar to browse all registered users.
    166 * Filter by letter (A-Z) or search by name/username
    167 * Sortable columns: Username, Name, Email, Group, Created date
    168 * Paginated results (20 per page)
    169 
    170 
    171 === Groups ===
    172 
    173 Navigate to '''Groups''' to browse all organizations.
    174 * Filter by letter or search
    175 * Click a group name to view its details: members list, PI(s), and subgroups
    176 
     261The Directory section lets you browse the COSMOS/ORBIT user community.
     262
     263=== Users === #Users
     264
     265Navigate to '''Users''' in the sidebar to browse all registered users. You can:
     266* Filter alphabetically by clicking a letter (A-Z)
     267* Search by name, username, or email
     268* Sort by any column header (Username, Name, Email, Group, Created date)
     269* Results are paginated with 20 users per page
     270
     271=== Groups === #Groups
     272
     273Navigate to '''Groups''' to browse all registered organizations. You can:
     274* Filter alphabetically or search by group name or organization name
     275* Click any group name to see its detail page: full member list, PI (Principal Investigator), and any sub-groups (Linux groups)
     276
     277----
    177278
    178279== Navigation Reference == #Navigation
    179280
    180 The portal sidebar shows the following sections for regular users:
    181 
    182 ||= Section =||= Pages =||= Description =||
    183 || My Account || Dashboard || Profile summary and usage stats ||
    184 || Scheduler || Scheduler || Calendar view for reservations ||
    185 || || My Reservations || List of your upcoming reservations ||
    186 || Status || Node Status || Testbed node power states (when you have a reservation) ||
    187 || || RF Matrix - SB4 || RF attenuation matrix (when you have an SB4 reservation) ||
     281The portal sidebar organizes pages into sections. The following are visible to regular authenticated users:
     282
     283||= Section =||= Page =||= Description =||
     284|| My Account || Dashboard || Profile summary, quick links, usage statistics ||
     285|| Scheduler || Scheduler || Calendar-based reservation system ||
     286|| || My Reservations || List and manage your upcoming reservations ||
     287|| Status || Testbed Status || Node power state grid (requires active reservation) ||
     288|| || RF Matrix (SB4) || RF attenuation matrix control (requires SB4 reservation) ||
    188289|| Directory || Users || Browse all registered users ||
    189 || || Groups || Browse all organizations ||
    190 
    191 The top-right user menu provides quick access to '''Edit Profile''', '''SSH Keys''', and '''Log Out'''.
    192 
    193 == Tips == #Tips
    194 
    195 * '''Mobile friendly''' -- on small screens, the sidebar becomes a hamburger menu
    196 * '''Hover for help''' -- each sidebar link has an info icon with a tooltip describing the page
    197 * '''Keyboard shortcuts''' -- press Escape to close dialogs
    198 * '''Timezone awareness''' -- the scheduler always shows times in your local timezone with UTC reference
     290|| || Groups || Browse all organizations and their members ||
     291
     292Additional sections appear for PI/Group Admins (group member management) and Global Admins (user/group approval, scheduler management, inventory, and more).
     293
     294The top-right corner shows your name with a dropdown menu for '''Edit Profile''', '''SSH Keys''', and '''Log Out'''.
     295
     296----
     297
     298== Tips and Troubleshooting == #Tips
     299
     300* '''Mobile friendly''' -- on small screens, the sidebar collapses into a hamburger menu accessible from the top-left
     301* '''Hover for help''' -- each sidebar link has a small info icon; hover over it to see a tooltip describing the page
     302* '''Keyboard shortcuts''' -- press Escape to close any modal dialog
     303* '''Timezone awareness''' -- the scheduler shows times in your local timezone by default, with UTC and COSMOS Eastern Time references in the clock bar
     304* '''Time format''' -- use the 12h/24h toggle button on the scheduler to switch between AM/PM and 24-hour format; your preference is remembered
     305* '''Session timeout''' -- if your session expires, the portal redirects you to the login page; your last URL is preserved so you return to the same page after logging in
     306* '''SSH connection refused''' -- verify that your reservation is currently active (approved, not just pending) and that your public key is uploaded in the SSH Keys page
     307* '''Key not working''' -- make sure you uploaded the ''public'' key (`.pub` file), not the private key. The portal validates the format on upload.
     308* '''Can't see status pages''' -- status pages only appear when you have a current or upcoming reservation (within 24 hours)
     309
     310----
     311
     312== External Resources == #Resources
     313
     314* [https://www.cosmos-lab.org COSMOS Project Homepage]
     315* [https://www.orbit-lab.org ORBIT Lab Homepage]
     316* [https://wiki.cosmos-lab.org/wiki/WikiStart COSMOS Wiki]
     317* [https://www.openssh.com OpenSSH Project] -- the SSH implementation used on all testbed nodes
     318* [https://www.ssh.com/academy SSH Academy] -- tutorials and reference material for SSH, keys, and tunneling
     319* [https://docs.github.com/en/authentication/connecting-to-github-with-ssh GitHub SSH Guide] -- beginner-friendly SSH key setup guide (applicable beyond GitHub)