DGX Spark remote access: NVIDIA Sync, the DGX Dashboard, Tailscale and plain SSH (November 2026)
NVIDIA Sync is a tray app for Windows, macOS and Ubuntu that takes a DGX Spark's hostname, username and password once, swaps the password for a Sync-managed SSH key, and then keeps an SSH tunnel open so you can launch VS Code, Cursor, Codex, AI Workbench, the DGX Dashboard (port 11000) and your own scripts from the tray. NVIDIA's release notes list version 0.148.0-153 as current (docs updated 30 October 2026, read 7 November 2026); it adds a beta Model Launcher that runs Qwen3.8 27B NVFP4 in a vLLM container on the Spark. For access from outside your network Sync has Tailscale built in, and a plain ~/.ssh/config with port forwards does everything else Sync does. On a rented GPUwerk Spark none of the Spark-side setup applies: you get a browser terminal or root SSH with your own key, and no Tailscale inside the container.
| What gets set up | Where | Detail | Source |
|---|---|---|---|
| NVIDIA Sync app | Laptop | Windows .exe, macOS .dmg, or the nvidia-sync apt package on Ubuntu | Sync getting started |
| One managed key pair for all Sync devices | Laptop, public half on the Spark | Your password is used once to install it; Sync then uses key-based SSH | AI Workbench: Use NVIDIA Sync |
| SSH alias | Laptop SSH config | Usable from your own terminal and other SSH tools | Adding and connecting devices |
| Custom app scripts, logs, port records | Spark, ~/.config/NVIDIA/Sync/ | One port-<port>.bash script per custom app | Sync applications |
| Docker group membership (optional) | Spark | Asked after you add a device; NVIDIA warns it can grant root-level control | Adding and connecting devices |
| Tailscale client (optional) | Spark | Installed with an auth key you create; the laptop side is built into Sync | Sync Tailscale |
| Model, vLLM image, OpenCode, skills (optional) | Spark, model-launcher/ and ~/opencode | Qwen3.8-27B-NVFP4 with eugr/spark-vllm:nightly-20261002 on a Spark | Model Launcher |
Read 7 November 2026 from NVIDIA's Sync and AI Workbench documentation (Sync pages last updated 30 October 2026). Sync does not install Docker and does not change Docker socket permissions; it only offers to add your user to an existing docker group.
What does NVIDIA Sync install, and what does it change on the Spark?
On the laptop it installs one app; on the Spark it adds an SSH key and, only if you use those features, some files, a Docker group membership and a Tailscale client. NVIDIA's connection guide describes the add-device flow: Sync finds the Spark over mDNS (a name like spark-abcd.local) or takes a hostname or IP, logs in once with your password, sets up key-based access and writes an SSH alias. The AI Workbench docs add that Sync creates and manages a single key pair for all its devices. If you already have key access, you skip the password and import an existing alias from your main SSH config instead.
On Ubuntu the app comes from NVIDIA's Workbench repository, per the Sync getting-started page:
curl -fsSL https://workbench.download.nvidia.com/stable/linux/gpgkey | sudo tee -a /etc/apt/trusted.gpg.d/ai-workbench-desktop-key.asc
echo "deb https://workbench.download.nvidia.com/stable/linux/debian default proprietary" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt install nvidia-sync
Three limits matter before you rely on it. Sync does not support jump or bastion hosts. Custom apps run from your home directory as your user, and the port you assign is bound locally until you stop the app or disconnect. On Windows, Sync writes to the Windows SSH config while AI Workbench may look inside WSL, and NVIDIA's Workbench page warns that a location added through Sync may then not find its SSH entry.
Which NVIDIA Sync version is current, and what changed?
Version 0.148.0-153 is current; NVIDIA's release notes carry no dates, so the dates below come from the forum posts where each version first shows up.
| Version | Main changes | Source | Date |
|---|---|---|---|
| 0.41.22 | The version an NVIDIA moderator told owners to run; launching AI Workbench from Sync on Windows failed until a patch owners reported on 3 December 2025 | forum 349159 | 2025-10-29 |
| 0.64.24 | Tailscale integration, SSH service discovery, DGX Dashboard auto-detection, import of existing SSH configs | forum 365576 | 2026-04-03 |
| 0.97.6 | Cluster Assistant for ConnectX-7 clusters, several devices connected at once, local port collision handling | release notes | June 2026 |
| 0.100.18 | Update notifications in the DGX Dashboard app, session logging, updates no longer overwrite the default SSH config | release notes | not stated |
| 0.100.19-18 | Build of 28 July 2026 bundles Tailscale v1.92.5, reported by an owner; NVIDIA replied on 13 August that the next release updates it | forum 379413 | 2026-08-07 |
| 0.117.3-9 | Resource Monitor for CPU, memory and GPU; SSH aliases for ConnectX-7 addresses; same host with several user accounts | release notes | not stated |
| 0.148.0-153 | Model Launcher (beta), OpenCode set up against the local model, Docker group prompt, Codex remote folders | release notes | docs of 2026-10-30 |
The 0.97.6 month is from NVIDIA's DGX Spark June 2026 release notes, which introduce the Cluster Assistant, and from a forum thread about 0.97.6 opened on 2 June 2026. Versions between those listed exist; these are the ones with notes I could read.
The October 2026 DGX Spark release also routes DGX Spark Skills through Sync: per NVIDIA's Sync page in the Spark user guide, from late October the skills for troubleshooting, clustering and maintenance are available in the local OpenCode instance that Sync configures. Model Launcher setup installs skills under ~/opencode/.opencode/skills/. What else changed in that release is on the DGX Spark software updates page.
How do I open the DGX Dashboard and its JupyterLab remotely?
Tunnel port 11000 for the dashboard and your own JupyterLab port for the notebook; Sync does both when you click DGX Dashboard. The dashboard docs say it shows system metrics, applies updates, changes some settings and starts JupyterLab, and that updates and renaming need a sudo account. Each user account gets its own JupyterLab port, listed in a YAML file. NVIDIA's dashboard playbook gives the manual version:
cat /opt/nvidia/dgx-dashboard-service/jupyterlab_ports.yaml
ssh -L 11000:localhost:11000 -L <ASSIGNED_PORT>:localhost:<ASSIGNED_PORT> <USERNAME>@<SPARK_DEVICE_IP>
Then open http://localhost:11000 and log in with your Linux username and password. If several people share the Spark, an administrator can switch the dashboard's update button off with /opt/nvidia/dgx-dashboard/settings.json ("update": {"enabled": false}), which NVIDIA documents on the same page. That stops a teammate from rebooting a shared server into a new kernel. JupyterLab itself is covered in the AI Workbench and JupyterLab guide.
How do I reach my Spark from outside my network?
Use Sync's built-in Tailscale, and set it up before you leave the building. The Sync Tailscale page says the laptop needs no Tailscale app because Sync embeds it; you sign in through the browser, create an auth key with default settings in the Tailscale admin console, paste it into Sync, and a terminal on the Spark installs and signs in the Tailscale client. After that Sync picks direct or Tailscale on its own and switches when you change networks. Removing a device from the tailnet needs a direct connection again, so do not plan to clean up from a café.
Without Sync, NVIDIA's older standalone Tailscale playbook (last updated 7 November 2025) installs the client from Tailscale's Ubuntu 24.04 repository:
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | \
sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg > /dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list | \
sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt update
sudo apt install -y tailscale
sudo tailscale up
That playbook's old address on build.nvidia.com now redirects to Tailscale's own knowledge base (checked 7 November 2026); NVIDIA folded the Sync route into the "Enable Tailscale" tab of its Connect Remotely playbook. One reason to prefer the standalone client: it updates through apt, while Sync's embedded copy updates only with Sync. An owner found Tailscale v1.92.5 inside Sync 0.100.19-18 in August, with advisories open against it (forum thread 379413).
Can I skip NVIDIA Sync and use plain SSH?
Yes, and on a network you control I would. Apart from the Cluster Assistant, Model Launcher and the Tailscale wizard, every Sync feature is an SSH login plus a port forward. NVIDIA's manual SSH tab starts with ssh <user>@spark-abcd.local and falls back to the IP from your router when mDNS is blocked. Put the forwards in your config so one word opens them; LocalForward and ServerAliveInterval are standard OpenSSH options:
Host spark
HostName spark-abcd.local
User you
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
LocalForward 11000 localhost:11000
Copy your public key with ssh-copy-id and turn off password logins, as in the setup guide. Sync can import this same alias later, so the two approaches coexist. VS Code and Cursor read the file through their Remote-SSH extensions.
How do I expose a model API without leaving it open?
Bind the server to localhost and reach it through a tunnel; publish it on the LAN only behind authentication you trust. NVIDIA's own Model Launcher docs spell out the trade-off: Localhost mode keeps the endpoint behind Sync's SSH tunnel, while LAN mode listens on every network the Spark is attached to, including VPNs, is open to anyone who can reach it unless you generate an API key, and uses unencrypted HTTP even with a key. The model also keeps running when Sync disconnects, so a LAN endpoint stays reachable while your laptop sleeps.
Ranked from safest:
- SSH tunnel. Start vLLM with
--host 127.0.0.1and forward the port as above. Nothing listens on the network. - Tailscale Serve.
tailscale serve 8000proxies the local port to an HTTPS address inside your tailnet, per Tailscale's docs, which also say access rules apply and that Funnel, the public variant, is on by default unless you turn it off. - LAN with a key and a proxy. vLLM's security page warns that
--api-keyprotects only the/v1,/v2,/inferenceand/coherepaths;/invocationsreaches the same inference functions with no key. Put a reverse proxy in front that allowlists the paths you use.
vllm serve <model> --host 127.0.0.1 --port 8000 --api-key "$VLLM_API_KEY"
ssh -N -L 8000:localhost:8000 spark
Also think twice about the Docker group prompt. NVIDIA's own wording is that membership "can grant root-level control of the device", which is fine for the owner and wrong for a teammate who only needs the API; the multi-user access guide covers the gateway pattern for that case.
What is different on a rented Spark?
Almost all of the Spark-side setup in this guide does not apply, because a rental is a container, not a DGX OS host. Per the tenant environment page, you are root inside a Docker container with the GPU passed through, there is no systemd, no NET_ADMIN (so no Tailscale or kernel VPN), and no Docker socket. You connect with the browser terminal or with root SSH on port 22 using your own key, as the SSH key guide shows; password logins are off.
What follows from that, feature by feature:
- DGX Dashboard: it runs as a systemd service on DGX OS (
dgx-dashboard.servicein NVIDIA's docs), so there is none inside the container. - Tailscale and Model Launcher: both need what the container withholds, a network device for the first and a Docker socket for the second.
- Sync itself: its docs say it works with any SSH-accessible Linux host and can import an existing alias, so importing the
Host sparkalias from that SSH guide should give you terminal and editor launches. I have not seen that confirmed on a rental, and the plain config does the same. - Web UIs: bind them to 127.0.0.1 and forward the port, for example
ssh -N -L 8888:127.0.0.1:8888 sparkfor a model preset's server.
The in-container hardening checklist is in security hardening a rented GPU.
What I would set up
For one owner on a home or office LAN: plain SSH with a key, the config block above, and the standalone Tailscale client if you travel. Add Sync if you want one-click editor launches or the Cluster Assistant for two or more Sparks; nothing it sets up is hard to undo. Leave Model Launcher in Localhost mode unless the whole LAN is people you would hand a root shell. If the Spark is headless from day one, the headless setup guide covers getting it onto the network before any of this.
FAQ
What is NVIDIA Sync for DGX Spark?
NVIDIA Sync is a tray app for Windows, macOS and Ubuntu that connects to a DGX Spark over SSH. You give it the Spark's hostname, username and password once; it sets up key-based SSH, an SSH alias and a managed tunnel, then launches VS Code, Cursor, Codex, AI Workbench, the DGX Dashboard and your own scripts. Its release notes list version 0.148.0-153 as current, read on 7 November 2026.
How do I open the DGX Dashboard remotely without NVIDIA Sync?
Open an SSH tunnel to port 11000 and browse to http://localhost:11000, as NVIDIA's DGX Dashboard docs describe: ssh -L 11000:localhost:11000 [email protected]. For the dashboard's JupyterLab, add a second -L for your per-user port, which is listed in /opt/nvidia/dgx-dashboard-service/jupyterlab_ports.yaml on the Spark.
Do I need Tailscale to reach my DGX Spark from outside my home network?
You need some tunnel; Tailscale is the one NVIDIA documents. NVIDIA Sync has Tailscale built in on the laptop and installs the Tailscale client on the Spark using an auth key you create. Set it up while you are still on the same network, because Sync needs a direct connection to install it and to remove it later.
Is the NVIDIA Sync Model Launcher LAN mode safe?
Only on a network you trust. NVIDIA's Model Launcher docs say LAN mode listens on every network the Spark is connected to, including VPNs, uses unencrypted HTTP even when you set an API key, and is open to anyone who can reach it if you set no key. Localhost mode keeps the endpoint behind Sync's SSH tunnel instead.
Does NVIDIA Sync work with a rented DGX Spark?
Partly at best. A rented GPUwerk Spark is a container you reach by root SSH with your own key or a browser terminal. Sync can import an existing SSH alias, but its Tailscale, Docker and Model Launcher features need things the container does not allow, and the DGX Dashboard is a host service. Plain SSH with port forwards does the same job there.
Sources
Every figure above is attributed to its source in the sentence or table where it appears. Pages were read on 7 November 2026 unless a date says otherwise.
- NVIDIA Sync User Guide, NVIDIA, 2026-10-30
- NVIDIA Sync Release Notes, NVIDIA, 2026-10-30
- Adding and Connecting Devices (NVIDIA Sync), NVIDIA, 2026-10-30
- Applications (NVIDIA Sync), NVIDIA, 2026-10-30
- Tailscale Connections (NVIDIA Sync), NVIDIA, 2026-10-30
- Model Launcher (NVIDIA Sync), NVIDIA, 2026-10-30
- DGX Dashboard, DGX Spark User Guide, NVIDIA, 2026-11-04
- NVIDIA Sync, DGX Spark User Guide, NVIDIA, 2026-11-04
- Getting Started (NVIDIA Sync), NVIDIA, 2026-10-30
- Connect Remotely: Connect with Manual SSH, NVIDIA build.nvidia.com
- Connect Remotely to Your AI Compute (playbook), NVIDIA build.nvidia.com
- Set up Tailscale on Your Spark (playbook README), NVIDIA on GitHub, 2025-11-07
- DGX Dashboard (playbook README), NVIDIA on GitHub, 2025-11-21
- Use NVIDIA Sync with AI Workbench, NVIDIA
- New Nvidia Sync v0.64.24, NVIDIA Developer Forums, 2026-04-03
- NVIDIA Sync bundles an outdated Tailscale version (v1.92.5) in 0.100.19-18, NVIDIA Developer Forums, 2026-08-07
- DGX Spark - NVIDIA Sync AI Workbench launch issue, NVIDIA Developer Forums, 2025-10-27
- Security (API key authentication limitations), vLLM
- Tailscale Serve, Tailscale, 2026-01-20
- ssh_config(5), OpenBSD manual pages