Using AxonOS/Using the Platform/SSH-only sessions

SSH-only sessions

An AxonOS session can run in headless SSH mode: no X desktop, no browser viewer, just a GPU shell you connect to over standard SSH. This is useful for scripted workloads, CI pipelines, remote development, and AI agents that don't need a graphical desktop.

Connecting

After a session is started in SSH mode you receive a host, port, and username. Connect with:

bash
ssh -p <assigned-port> aXonian@axonconsole.io

The port is assigned per-session from the gate's SSH port pool (42000+). Each session gets its own port for the duration it is running.

Host key on first connect

Add -o StrictHostKeyChecking=accept-new on the first connection to accept the session's ephemeral host key without a prompt.

How it differs from a desktop session

Desktop sessionSSH-only session
InterfaceBrowser noVNC viewerTerminal over SSH
X11 / XFCERunningDisabled
GPU accessYes (via VirtualGL)Yes (nvidia-smi, CUDA, etc.)
Science templatesAuto-launchedNot applicable
AuthenticationWallet sign + creditsWallet sign + credits or x402
Best forInteractive GPU desktopScripts, pipelines, AI agents

The container still has all the same GPU hardware, drivers, and scientific software — only the graphical stack is inactive.

GPU workloads over SSH

Once connected, the GPU is accessible via CUDA directly:

bash
nvidia-smi -L                        # list attached GPUs
python3 -c "import torch; print(torch.cuda.is_available())"
gmx -version                         # GROMACS available
nextflow -version                    # Nextflow available

Run any compute job as you would on a local machine. Billing is identical to a desktop session — wall-clock minutes × GPU count — and billing stops when you release the session.

Starting an SSH session as a human user

SSH mode can be requested from the launch page (if the operator has exposed the option) or via the API. When the gate returns ssh_host, ssh_port, and ssh_user, connect with the command above and the keypair you provided when claiming the session.

Starting an SSH session as an agent (x402)

AI agents can claim SSH sessions without a browser wallet by using the x402 payment rail. See Agentic access via x402 for the full flow — the agent:

  1. GETs the discovery endpoint to find the payment requirements.
  2. Pays with USDC via the official x402 SDK (no gas, no EOA interaction by the agent operator).
  3. POSTs to /api/x402/session with the agent's SSH public key.
  4. Receives ssh_host, ssh_port, ssh_user and connects.
bash
# After the agent receives the session credentials:
ssh -i ./agent_key -p <PORT> -o StrictHostKeyChecking=accept-new aXonian@axonconsole.io \
  'nvidia-smi -L && python3 -c "print(\"agent workload complete\")"'

Releasing a session

Release the session when done so GPUs are freed and billing stops:

bash
# Via the gate API (auth_token received at session claim time):
curl -X POST https://desktop.axonos.io/api/release \
  -H "Content-Type: application/json" \
  -d '{"auth_token": "<YOUR_AUTH_TOKEN>"}'

Closing the SSH connection alone does not stop billing — the container keeps running until explicitly released. Always release when your workload is done.