SshSessionBackend depends on a system ssh binary on PATH, which is inconsistent with the embedded-only philosophy deliberately adopted for RDP (which was pivoted away from an external launcher in Milestone 5 — see docs/PROGRESS.md).
Needs a decision, not necessarily a rewrite:
Keep as-is: simpler, relies on system OpenSSH, no new vendored dependency
Embed a library (e.g. libssh2) for consistency with RDP and to drop the runtime PATH dependency
Filing to make the tradeoff explicit and tracked rather than implicit.
`SshSessionBackend` depends on a system `ssh` binary on PATH, which is inconsistent with the embedded-only philosophy deliberately adopted for RDP (which was pivoted away from an external launcher in Milestone 5 — see docs/PROGRESS.md).
Needs a decision, not necessarily a rewrite:
- Keep as-is: simpler, relies on system OpenSSH, no new vendored dependency
- Embed a library (e.g. libssh2) for consistency with RDP and to drop the runtime `PATH` dependency
Filing to make the tradeoff explicit and tracked rather than implicit.
Decision: keep shelling out to the system ssh binary rather than embedding a library (e.g. libssh2).
Rationale: unlike RDP -- which had no good bundled/embeddable alternative and a clean FreeRDP integration path -- OpenSSH ships by default on Linux, macOS, and Windows 10+, so the runtime dependency concern is weak. Embedding a library would mean reimplementing PTY request/resize over SSH channels, host-key/known_hosts verification and policy, password/key/passphrase auth flows, and giving up things OpenSSH provides for free (ssh_config parsing, agent integration, etc.) -- a large rewrite with real regression risk to a feature that currently works well, for a consistency argument alone.
Closing as decided, no code change.
Decision: keep shelling out to the system `ssh` binary rather than embedding a library (e.g. libssh2).
Rationale: unlike RDP -- which had no good bundled/embeddable alternative and a clean FreeRDP integration path -- OpenSSH ships by default on Linux, macOS, and Windows 10+, so the runtime dependency concern is weak. Embedding a library would mean reimplementing PTY request/resize over SSH channels, host-key/known_hosts verification and policy, password/key/passphrase auth flows, and giving up things OpenSSH provides for free (ssh_config parsing, agent integration, etc.) -- a large rewrite with real regression risk to a feature that currently works well, for a consistency argument alone.
Closing as decided, no code change.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
SshSessionBackenddepends on a systemsshbinary on PATH, which is inconsistent with the embedded-only philosophy deliberately adopted for RDP (which was pivoted away from an external launcher in Milestone 5 — see docs/PROGRESS.md).Needs a decision, not necessarily a rewrite:
PATHdependencyFiling to make the tradeoff explicit and tracked rather than implicit.
Decision: keep shelling out to the system
sshbinary rather than embedding a library (e.g. libssh2).Rationale: unlike RDP -- which had no good bundled/embeddable alternative and a clean FreeRDP integration path -- OpenSSH ships by default on Linux, macOS, and Windows 10+, so the runtime dependency concern is weak. Embedding a library would mean reimplementing PTY request/resize over SSH channels, host-key/known_hosts verification and policy, password/key/passphrase auth flows, and giving up things OpenSSH provides for free (ssh_config parsing, agent integration, etc.) -- a large rewrite with real regression risk to a feature that currently works well, for a consistency argument alone.
Closing as decided, no code change.