Loading…
Reference in a new issue
No description provided.
Delete branch "2561"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes swamp-club #2561 and #2604 (
@swamp/ssh, tailscale transport).Problem
tailscale sshdefines no flags and rejects any before the destination (flag provided but not defined), but hands everything after the destination to the systemssh, which re-parses options that follow the host. The extension got this wrong in two ways:-o SendEnv=<key>for tailscale hosts, so host and per-callenvnever reached the remote.forwardbuilttailscale ssh -N -L <spec> <dest>, which always failed on-N; any non-emptysshExtraArgs(spliced before the destination) failed the same way.Change
tailscaleSshArgvinrunner.tsbuilds the one accepted shape:tailscale ssh -- <dest> [sshExtraArgs] <ssh args>.tailscale ssh -- <dest> [sshExtraArgs] -o SendEnv=K... -- <cmd>. The trailing--stops ssh reading a--leading command as options.tailscale ssh -- <dest> [sshExtraArgs] -N -L|-R <spec>.sendEnvKeysdrops keys that are not shell identifiers (both transports): ssh reads*/?inSendEnvas wildcards, so a key likeAWS_*forwarded every matching runner env var. Raised by the pre-PR adversarial review.acceptEnv(destination on v1.76.0+) alongside sshdAcceptEnv, newsshExtraArgsmeaning (not used bycopy), forward argv, wildcard-key note.Verification
<bin> ssh --precedes the destination;operations_test.tsdrivesrunExecon a tailscale host and checks SendEnv argv + spawn env. The new tests fail on the old builders; 323 pass.sshon PATH is accepted, SendEnv/-N/-L/sshExtraArgs arrive after the host, and the env value is inherited. Real OpenSSH 10.3 with-Gparses them (sendenv APP,serveraliveinterval 15,localforward 9090).769159d8a: verify-build 13/14 passed (codegen idempotency skipped), including the upgrade-path test; verify-reviews code-review pass, adversarial-review pass (no critical/high/medium), ci-security-review skipped. Attestation posted.🤖 Generated with Claude Code