cmd/tailscale/cli: add workaround for improper named socket quoting in ssh command

This avoids the issue in the common case where the socket path is the
default path, avoiding the immediate need for a Windows shell quote
implementation.

Updates #6639

Signed-off-by: James Tucker <james@tailscale.com>
pull/6663/head
James Tucker 2 years ago committed by James Tucker
parent bdc45b9066
commit 389238fe4a

@ -21,6 +21,7 @@ import (
"tailscale.com/envknob"
"tailscale.com/ipn/ipnstate"
"tailscale.com/net/tsaddr"
"tailscale.com/paths"
"tailscale.com/version"
)
@ -110,10 +111,15 @@ func runSSH(ctx context.Context, args []string) error {
// So don't use it for now. MagicDNS is usually working on macOS anyway
// and they're not in userspace mode, so 'nc' isn't very useful.
if runtime.GOOS != "darwin" {
socketArg := ""
if rootArgs.socket != "" && rootArgs.socket != paths.DefaultTailscaledSocket() {
socketArg = fmt.Sprintf("--socket=%q", rootArgs.socket)
}
argv = append(argv,
"-o", fmt.Sprintf("ProxyCommand %q --socket=%q nc %%h %%p",
"-o", fmt.Sprintf("ProxyCommand %q %s nc %%h %%p",
tailscaleBin,
rootArgs.socket,
socketArg,
))
}

Loading…
Cancel
Save