Skip to main content

Browser terminal

The browser terminal is how you get a shell inside a running GPU instance. It runs over a WebSocket from the console, so nothing to install locally.

Open the terminal​

  1. Go to Compute → GPU Instances in the console.
  2. Click into the running instance you want to access.
  3. Click the Terminal button in the top-right of the detail page.

A full-screen terminal opens in your browser. You're root inside the container — standard shell behavior, every command you'd expect (ls, cd, python, vim, apt, nvidia-smi, etc.) works.

Behavior and limits​

  • Single active session per instance — opening the terminal from a second tab closes the first. Use tmux or screen inside if you need multiple panes.
  • Your browser tab is the connection — if the tab closes or you lose network, the WebSocket drops. Your process inside the container keeps running (it's not tied to the tab); just reopen the terminal to reattach.
  • Copy / paste works with native browser shortcuts (Cmd/Ctrl+C to copy the selection, Cmd/Ctrl+V to paste).
  • Idle timeout — connections idle for > 60 min are closed server-side. Reopen to reconnect.

Long-running jobs — use tmux​

The terminal is your window into the container, not the container itself. A training job running in python train.py keeps running if you close the tab — but you lose visibility unless you reattach to a tmux session:

# First time:
apt-get update && apt-get install -y tmux
tmux new -s work

# Now inside tmux — run your long job:
python train.py

# Detach without stopping: Ctrl-b then d
# Close the tab. Come back tomorrow. Open the terminal:
tmux attach -t work

Best practice: run any job expected to take more than a few minutes inside tmux.

SSH access​

For a real terminal, scp/rsync, VS Code Remote, or any script, enable SSH at launch:

  1. On the launch form tick Enable SSH and paste your OpenSSH public key (ssh-ed25519 … or ssh-rsa …). Over the API that is "ssh_enabled": true plus "ssh_public_key": "…".
  2. Once the instance is running and accepting connections — usually within a minute of the pod coming up — the detail page (and GET /gpu-instances/{id}, as ssh_command with ssh_ready: true) shows the command to run: ssh -p <port> root@<host>. You connect as root, authenticated by the key you pasted; no password.

SSH cannot be switched on for an instance that is already running — the key and the connection are set up when the pod starts. Launch a new one.

The image needs OpenSSH. Every EcoLink platform image (the entries in the image dropdown — GPU Base, GPU Jupyter, GPU Inference, CUDA Bare) has it, and SSH is up within seconds. A plain third-party image such as nvidia/cuda:… or pytorch/pytorch:… usually does not; when you enable SSH on one, EcoLink installs OpenSSH at boot (Debian/Ubuntu and Alpine based images), which adds about a minute before SSH accepts. If the image can't install it, the instance still runs — use the browser terminal — but SSH won't connect; the pod log says so.

Browser terminal vs Jupyter​

Prefer the terminal forPrefer Jupyter for
Installing packages, system setupInteractive data exploration
Running scripts, long training jobsPlotting, visualizations
Debugging shell / environment issuesIterative code you want to re-run incrementally
git, vim, htop, nvidia-smiNotebook-based ML workflows

Both are available on the same instance; use whichever fits the task.

Troubleshooting​

"Disconnected from server" shortly after opening

  • Your instance's network might be flaky. Refresh the detail page; if the instance shows status preempted or failed, the pod went down and the terminal can't attach.

Keyboard shortcuts aren't working

  • Some browser extensions intercept key combos. Try an incognito window.

Command output looks garbled

  • The terminal emulator is VT100-compatible. Programs that auto-detect terminal type via $TERM should work; if not, export TERM=xterm-256color before running.

SSH: "Connection refused"

  • The instance only just became running: the connection is set up after the pod starts (longer if OpenSSH had to be installed first). Wait for the detail page to show the SSH command — it appears only once the instance accepts connections.
  • It never appears: the image has no OpenSSH and it could not be installed (see SSH access). The pod is running — you can still use the browser terminal. Terminate it and relaunch from a platform image.

GPU isn't visible

  • Run nvidia-smi to confirm. If it says "No devices found," the pod might not have been scheduled onto a GPU node — very rare, but try terminating and relaunching.

Common quick-checks inside the instance​

nvidia-smi                         # GPU status
df -h # disk free
free -h # RAM
nproc # CPUs available
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.device_count())"

Your privacy choices

Essential cookies are always on. You can change these choices at any time.