SWITCHBOARD_SSH_PATH reads as the ssh binary for remote hosts, but only the attach PTY honours it:
- read:
remote-attach.js:230 (defaultResolveSshPath);
- spawn a bare
'ssh' from PATH: the mirror (remote-transport.js:215, :290), the watch channel (remote-watch.js:137) and stop (remote-attach.js:260);
- spawns
scp from PATH the same way: remote-transport.js:238.
A user who sets it because ssh is not on PATH, or to use a specific client (a wrapper, a Windows OpenSSH path), gets an attach that works and a mirror that does not.
What should happen
One resolver for the ssh binary, used by every remote spawn, and a matching one for scp (derived from the same directory, or SWITCHBOARD_SCP_PATH).
Acceptance
SWITCHBOARD_SSH_PATHreads as the ssh binary for remote hosts, but only the attach PTY honours it:remote-attach.js:230(defaultResolveSshPath);'ssh'from PATH: the mirror (remote-transport.js:215,:290), the watch channel (remote-watch.js:137) and stop (remote-attach.js:260);scpfrom PATH the same way:remote-transport.js:238.A user who sets it because
sshis not on PATH, or to use a specific client (a wrapper, a Windows OpenSSH path), gets an attach that works and a mirror that does not.What should happen
One resolver for the ssh binary, used by every remote spawn, and a matching one for scp (derived from the same directory, or
SWITCHBOARD_SCP_PATH).Acceptance
spawn/execFileof ssh or scp in the remote modules goes through the resolver; a test enumerates them.docs/remote-hosts.mdanddocs/settings.md(from (docs): rewrite the README and docs/ against the code, one page per area #357) describe the variable accordingly.