Skip to content

Connect sandbox SSH through authenticated WebSocket port forwarding - #7589

Draft
HsingTang wants to merge 1 commit into
HsingTang/stack/sandbox-websocket-serverfrom
HsingTang/stack/sandbox-ssh-port-forward
Draft

HsingTang wants to merge 1 commit into
HsingTang/stack/sandbox-websocket-serverfrom
HsingTang/stack/sandbox-ssh-port-forward

Conversation

@HsingTang

@HsingTang HsingTang commented Nov 13, 2026 •

Copy link
Copy Markdown

🥞 Stacked PR


Changes

Change databricks sandbox ssh to use local SSH keys and authenticated WebSocket port forwarding. Its internal --proxy mode prepares expiring public-key entries through command execution, uploads a compatible Linux CLI, starts the internal sandbox server, pins its host key, and cleans up the remote command.

Keep sandbox implementation code in experimental/ssh/sandbox and reuse the existing SSH key, configuration, and relay helpers at their original paths. Share cancellable release downloads through experimental/ssh/internal/releases.

Why

Keep the existing SSH command while removing its dependence on the Gateway SSH listener and key registry. This change requires the sandbox port-forwarding backend and must ship after that backend is available. It does not fall back to direct Gateway SSH.

Tests

./task test-sandbox test-exp-ssh, affected race tests, and ./task fmt checks lint pass. Tests cover authentication settings, TLS/gRPC and WebSocket requests, startup deadlines, readiness, stalled output, cancellation, and cleanup. Native OpenSSH tests exercise commands and exit status, PTYs, SCP, SFTP, and expired-key rejection.

The package-layout change was reviewed locally with Isaac, with no blocking findings. Live workspace validation is pending availability of the forwarding backend; local fixtures do not establish deployed end-to-end support.

This PR was written with Codex.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Integration test report

Commit: 9434fda

Run: 43517693941

Env 💚​RECOVERED ✅​pass 🙈​skip Time
💚​ aws linux-2core-8gb 1 270 15 4:52
💚​ aws-windows-latest-4core-16gb 1 272 13 3:50
💚​ azure linux-2core-8gb 1 269 15 5:39
💚​ azure-windows-latest-4core-16gb 1 271 13 4:33
💚​ gcp linux-2core-8gb 1 270 15 5:12
💚​ gcp-windows-latest-4core-16gb 1 272 13 3:59
Test Name aws linux-2core-8gb aws-windows-latest-4core-16gb azure linux-2core-8gb azure-windows-latest-4core-16gb gcp linux-2core-8gb gcp-windows-latest-4core-16gb
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
Top 3 slowest tests (at least 2 minutes):
duration env testname
3:15 gcp-windows-latest-4core-16gb TestAccept
2:48 aws-windows-latest-4core-16gb TestAccept
2:47 azure-windows-latest-4core-16gb TestAccept

@HsingTang
HsingTang force-pushed the HsingTang/stack/sandbox-websocket-server branch from d3e8539 to e27bc56 Compare November 13, 2026 21:16
@HsingTang
HsingTang force-pushed the HsingTang/stack/sandbox-ssh-port-forward branch from 417c077 to 5441e69 Compare November 13, 2026 21:43
@HsingTang
HsingTang force-pushed the HsingTang/stack/sandbox-ssh-port-forward branch from 5441e69 to 9434fda Compare November 13, 2026 22:12
@HsingTang
HsingTang force-pushed the HsingTang/stack/sandbox-websocket-server branch from e27bc56 to 36dc63c Compare November 13, 2026 22:12

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants