Conversation
This branch has not been deployed
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.
Related issue
Closes #143
Delivered in this draft
Hostaliases with boundedIncludeprocessing, provenance, diagnostics and config snapshots. Listing never opens a connection or executes dynamic config commands.Useris absent, and revalidates source config before a diagnostic. Unsafe or unresolved selected options fail closed.ProxyJumpdiagnostic works on macOS/Linux for one explicitly listed bare gateway alias. It revalidates both selections, requires a distinct ED25519 pin identity for each hop, builds a private gateway config, suppresses selected commands and kills the Unix SSH process group. The route-specific matcher checks each independently supplied fingerprint, and the confirmed probe accepts two separately confirmed selections. CollidingHostKeyAliasidentities fail closed. This in-memory approval does not prove human review or enroll the pins durably. A controlled local server proves authentication through the jump and rejection of a changed pin on either hop. ArbitraryProxyCommand, multiple hops and Windows jump execution remain unsupported.ProxyJump none,ProxyCommand noneandIdentityFile nonepreserve their disabled semantics in the direct flow. AmbiguousProxyCommandsuffix syntax is unresolved instead of being stripped.Validation history
macOS: a controlled local
sshdproves the enrolled two-pin jump, classifies a changed host key on either hop, detects a gateway with no usable key and preserves the direct unknown-key diagnosis with a single unrelated pin. Focused race tests,go vet ./..., isolated-cachegolangci-lint run(0 issues),go mod tidy -diff,git diff --check, Hugo build and the fullgo test -race -count=1 ./...passed. Commit and push hooks passed.Windows/amd64: the full package test suite passed natively on each of two authorized machines using the same checksum-verified temporary binary built from this head; both binaries were removed. Windows jump execution remains unsupported.
CI at this head passed all 16 applicable checks, with 2 opt-in integrations skipped. At the previous head
653e33e, an unrelatedinternal/knowledgeconcurrent restart test hitSQLITE_BUSYon the first readiness attempt; its failed-job rerun passed at that same head, and the focused test passed five local race repetitions.Head
b634804requires exactly two canonical, newline-terminated plain ED25519 known-hosts lines for the single-hop low-level probe. It rejects extra blank lines, missing terminators, alternate whitespace and CRLF without changing the established unsupported-route errors for missing or extra pins. Focused and full Go race tests, vet, isolated-cache lint (0 issues), module tidy diff, Hugo and commit/push hooks passed locally. One pre-push attempt hit an unrelated concurrentinternal/workflowtest failure; that test passed five isolated race repetitions and the unchanged commit passed the next pre-push suite. All 16 applicable CI checks passed on this exact head; two opt-in integrations were skipped.Head
1ce4351extends the controlled loopbacksshdfixture to check that a gateway with an explicit key cannot mask a destination withIdentityFile none: the bounded jump probe reports authentication required. The focused fixture, vet, module tidy diff, isolated-cache lint (0 issues), commit and full pre-push Go race suite passed locally. One earlier full race run overlapped lint and hit an unrelatedinternal/workflowscheduling assertion; its focused rerun passed, then the pre-push full race suite passed. CI for this head is pending.Open acceptance work
ProxyCommandforms.This PR remains draft. These library APIs do not change personal SSH config or
known_hosts. No physical-device identity, Codex availability, installed controller or GUI behavior is claimed. Rollback removes the isolated package.