Repository navigation
feat(ssh): verify optional host-key pins on the actual connection - #287
Merged
Merged
Conversation
abruption
marked this pull request as ready for review
October 9, 2026 00:26
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
8 of 9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refs #183. Add POSIX-only --ssh-identity and --require-ssh-host-key for list/send/doctor --host. Actual OpenSSH KnownHostsCommand public-key callbacks supply local evidence; preflight destination/port/lookup names remain explicitly diagnostic. Required pins are enforced by strict verification in the actual dispatch connection, not a separate probe. Disable multiplex reuse, DNS acceptance and host-key updates; pin mode uses only the supplied public-key fingerprint, without writing known_hosts. Do not replace user KnownHostsCommand. Ordinary SSH output/behavior remains unchanged.
Preserve independently validated native submission evidence if receipt is missing; no retries. Local callback mismatch before authentication is typed refused/ssh_host_key_mismatch/submitted:false. Callback alone without complete remote response is observed, not verified. Identity-mode list skips the separate advisory installed-version probe.
Type
Validation
Boundaries
Ordinary RSA/Ed25519/ECDSA keys on POSIX only; host certificates, security-key types, custom KnownHostsCommand and Windows identity mode fail closed. Operator-owned SSH config/jump trust remains separate. A key reused by multiple hosts is not unique machine/account/session identity or ACK. No real remote host, live agent, operation, install, release or version bump. Four CLI-reference locales and CI test-only setup updated. Local final tests complete; current-head CI and automatic review remain gates; no separate Codex mentions.
Documentation integration follow-up
The four localized SSH pin examples now use a single shell line-continuation backslash. A shell-only regression checks the exact argument boundaries in every locale; it replaces only the executable word with a local capture function and never calls an SSH/client process. The first test harness used a non-POSIX hyphenated function name and failed locally; corrected harness and all 34 documentation tests now pass. Runtime code is unchanged by this follow-up; the prior 800-test extras result applies to 8c9543e. Current-head CI remains a separate gate.