Jinjing
809695a048
fix(P1-C): gate FIDO2 system-SSH transport on an OpenSSH binary ( #12029 )
...
* fix(ssh): gate FIDO2 system-transport on an OpenSSH binary
`ssh -G` echoes OpenSSH's built-in default identity list for every host, so
`usesDefaultPaths` was almost never true and the security-key gate returned
`!usesDefaultPaths || findSystemSsh() !== null` — forcing system transport
without checking that an `ssh` binary exists. `spawnSystemSsh()` then throws
`No system ssh binary found`, hard-failing connections that worked on ssh2.
The same flag also stopped the default scan at the first existing normal
private key, so a host that only accepts a FIDO2 key never reached system
OpenSSH when `~/.ssh/id_rsa` happened to exist.
Both decisions are independent of where an identity path came from: always
require `findSystemSsh() !== null` before forcing system transport, and scan
every candidate identity instead of stopping on the first normal key.
`shouldUseSystemSshTransport()` is untouched, so ProxyCommand / ProxyJump /
ProxyUseFdpass keep their intentional system transport.
* test(ssh): isolate connection tests from the developer's own FIDO2 keys
Transport selection now scans every default identity instead of stopping at
the first normal key, so a `~/.ssh/id_ed25519_sk` on the machine running the
suite would decide which transport the default-target tests take. Mock
`findSystemSsh` to null by default and opt the two security-key tests in.
(cherry picked from commit de75003df9 )
2026-08-02 00:50:28 -07:00
..
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-07-29 17:03:15 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-06-29 22:38:29 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-01 03:27:42 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-05-30 11:54:48 -07:00
2026-05-23 00:27:20 -07:00
2026-07-30 14:23:30 -07:00
2026-07-30 14:23:30 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-28 12:33:17 -07:00
2026-07-20 12:18:57 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-15 01:58:46 -07:00
2026-07-15 01:58:46 -07:00
2026-08-01 03:27:42 -07:00
2026-07-30 14:23:30 -07:00
2026-08-02 00:50:28 -07:00
2026-08-01 14:27:16 -07:00
2026-07-15 01:58:46 -07:00
2026-07-15 01:58:46 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-23 18:35:31 -07:00
2026-07-15 01:58:46 -07:00
2026-07-23 18:35:31 -07:00
2026-07-15 02:38:40 -07:00
2026-07-30 14:23:30 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-06-28 23:09:54 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-15 02:38:40 -07:00
2026-07-30 14:23:30 -07:00
2026-07-28 12:33:17 -07:00
2026-07-28 12:33:17 -07:00
2026-07-31 20:45:52 -07:00
2026-07-31 20:45:52 -07:00
2026-07-31 20:45:52 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-01 14:27:16 -07:00
2026-08-01 14:27:16 -07:00
2026-07-26 15:29:13 -07:00
2026-07-26 15:29:13 -07:00
2026-07-31 16:17:37 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-06-29 22:38:29 -07:00
2026-07-25 19:20:17 -07:00
2026-07-23 18:35:31 -07:00
2026-07-29 17:03:15 -07:00
2026-07-16 21:32:13 -07:00
2026-06-09 01:17:34 -07:00
2026-07-23 18:35:31 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-25 19:20:17 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-16 21:32:13 -07:00
2026-07-15 13:55:48 -07:00
2026-07-15 13:55:48 -07:00
2026-07-31 20:45:52 -07:00
2026-07-31 20:45:52 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 20:19:18 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-30 17:49:08 -07:00
2026-07-31 20:45:52 -07:00
2026-07-31 20:45:52 -07:00
2026-07-29 20:19:18 -07:00
2026-08-01 14:27:16 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-05-11 14:28:59 -07:00
2026-07-23 18:35:31 -07:00
2026-07-31 16:17:37 -07:00
2026-07-21 13:50:17 -07:00
2026-07-12 22:45:33 -07:00
2026-07-27 12:31:37 -07:00
2026-06-10 20:20:50 -07:00
2026-07-13 19:41:24 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-31 16:17:37 -07:00
2026-07-31 16:17:37 -07:00
2026-07-21 13:13:05 -07:00
2026-07-21 13:13:05 -07:00
2026-07-12 22:45:33 -07:00
2026-07-21 13:16:44 -07:00
2026-07-21 13:16:44 -07:00
2026-07-21 13:25:22 -07:00
2026-07-21 13:16:44 -07:00
2026-07-21 13:16:44 -07:00
2026-07-21 13:25:22 -07:00
2026-07-21 13:21:19 -07:00
2026-07-21 13:21:19 -07:00
2026-07-21 13:25:22 -07:00
2026-07-21 13:25:22 -07:00
2026-07-21 13:25:22 -07:00
2026-07-21 13:25:22 -07:00
2026-07-21 13:25:22 -07:00
2026-06-15 18:24:53 -07:00
2026-07-04 23:54:26 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-17 18:51:10 -07:00
2026-07-17 18:51:10 -07:00
2026-07-30 12:50:07 -07:00
2026-07-30 12:50:07 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 11:31:35 -07:00
2026-07-27 12:31:37 -07:00
2026-07-27 12:31:37 -07:00
2026-07-10 22:31:53 -07:00
2026-07-16 21:32:13 -07:00
2026-07-12 16:53:43 -07:00
2026-07-12 16:53:43 -07:00
2026-07-12 01:33:08 -07:00
2026-08-01 03:27:42 -07:00
2026-08-02 00:50:28 -07:00
2026-08-01 03:27:42 -07:00
2026-07-04 01:26:55 -07:00
2026-07-04 01:26:55 -07:00
2026-08-01 03:27:42 -07:00
2026-07-12 01:29:55 -07:00
2026-07-30 14:23:30 -07:00
2026-07-15 13:32:13 -07:00
2026-07-15 13:32:13 -07:00
2026-07-11 03:20:55 -07:00
2026-07-11 03:20:55 -07:00
2026-08-02 00:50:28 -07:00
2026-07-30 14:23:30 -07:00
2026-08-01 03:27:42 -07:00
2026-08-01 03:27:42 -07:00
2026-07-16 21:32:13 -07:00
2026-07-12 01:29:55 -07:00
2026-07-23 18:35:31 -07:00
2026-07-30 14:23:30 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-22 21:10:05 -07:00
2026-07-22 21:10:05 -07:00