VS Code Remote-SSH is the developer-ergonomics sweet spot for GPU work – your editor runs locally on your laptop but everything (interpreter, language server, debugger, terminal) runs on the remote box. This guide gets VS Code talking to a RTX 5060 Ti 16GB server on our dedicated GPU hosting, with Python, CUDA, and port forwarding for vLLM.
Contents
Why Remote-SSH
| Approach | Latency | GPU access | Setup friction |
|---|---|---|---|
| VS Code Remote-SSH | Native local UX | Full (runs on remote) | Low, one file |
| JupyterLab in browser | Good | Full | Low |
| VNC / RDP | Laggy | Full | High |
| SCP + local Python | n/a | None locally | High, no GPU |
| Dev containers (local) | Native | None | Medium |
SSH Config
On the laptop, edit ~/.ssh/config:
Host gpu-5060ti
HostName your-server.gigagpu.com
User ubuntu
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
ServerAliveCountMax 3
Compression yes
# Tunnels opened automatically on connect
LocalForward 8000 127.0.0.1:8000 # vLLM OpenAI
LocalForward 8888 127.0.0.1:8888 # Jupyter
LocalForward 6006 127.0.0.1:6006 # TensorBoard
LocalForward 9100 127.0.0.1:9100 # Prometheus node-exporter
Test from a terminal: ssh gpu-5060ti nvidia-smi. You should see the RTX 5060 Ti with 16 GB VRAM.
First Connect
- Install VS Code and the Remote – SSH extension (ms-vscode-remote.remote-ssh)
- Command Palette (Ctrl/Cmd+Shift+P) -> Remote-SSH: Connect to Host ->
gpu-5060ti - VS Code installs its 80 MB remote server automatically on first connect (~30 s)
- Open the remote folder you want to work in
The status bar shows SSH: gpu-5060ti when connected. All terminals, debugger and file edits now happen server-side.
Extensions and Interpreter
Extensions install either locally or remotely. Install on the SSH host:
| Extension | Purpose |
|---|---|
| Python (ms-python.python) | Interpreter, debug |
| Pylance | Type checking and completion |
| Jupyter | Notebooks in-editor |
| Ruff | Format and lint |
| Nsight VSCode Edition (optional) | CUDA debug |
Create a venv on the server and point VS Code at it:
# On remote (via VS Code terminal)
python3.11 -m venv ~/venv
source ~/venv/bin/activate
pip install torch --index-url https://download.pytorch.org/whl/cu126
pip install transformers accelerate vllm ruff
# Then Ctrl/Cmd+Shift+P -> Python: Select Interpreter -> ~/venv/bin/python
Port Forwarding
Two ways. Either via the SSH config LocalForward lines above, or via VS Code’s Ports panel – auto-detected when a local server binds a port. Useful ones:
| Remote port | Service | Local URL |
|---|---|---|
| 8000 | vLLM OpenAI API | http://localhost:8000/v1 |
| 8888 | JupyterLab | http://localhost:8888 |
| 6006 | TensorBoard | http://localhost:6006 |
| 7860 | Gradio demo | http://localhost:7860 |
| 11434 | Ollama | http://localhost:11434 |
Test vLLM forwarding end-to-end:
# Laptop terminal
curl http://localhost:8000/v1/models | jq
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"llama","messages":[{"role":"user","content":"hello"}]}'
Performance Tips
- Enable SSH Compression in the config when on slow links
- Exclude
node_modules,.venv,*.binfrom workspace file watching – huge perf win - Use
ControlMaster autoandControlPathfor instant reconnects - Keep the remote server on 1000 MB/s ethernet – Remote-SSH traffic is small but bursty
Dev-Friendly Blackwell Hosting
VS Code Remote-SSH onto a dedicated 16 GB GPU. UK dedicated hosting.
Order the RTX 5060 Ti 16GBSee also: Jupyter setup, Docker CUDA setup, Ubuntu driver install, vLLM setup, first-day checklist.