Skip to content

Keep destination SSH options off the jumphost - #790

Open
sdmcclain wants to merge 1 commit into
MisterTea:masterfrom
sdmcclain:fix/jumphost-destination-ssh-options
Open

Keep destination SSH options off the jumphost#790
sdmcclain wants to merge 1 commit into
MisterTea:masterfrom
sdmcclain:fix/jumphost-destination-ssh-options

Conversation

@sdmcclain

@sdmcclain sdmcclain commented Aug 12, 2026

Copy link
Copy Markdown

Summary

  • stop replaying destination-scoped --ssh-option values on the independent jumphost relay connection
  • preserve the jumphost user, port, address, alias, and IPv6 parsing added in Fix ProxyJump to support SSH ports and host aliases #705
  • add a regression test that records both SSH calls and verifies target options stay on the target bootstrap

Rationale

Jumphost mode launches two SSH processes with different destinations and often different users, identities, host keys, and trust policies. Copying target-only options onto the direct jumphost call can both break valid ProxyJump setups and unintentionally weaken jumphost verification.

Jump-specific policy continues to resolve independently from the jumphost's SSH configuration.

Testing

  • source and test formatting checks pass
  • Linux ASan, UBSan, MSan, TSan, jumphost system, and backwards-compatibility jobs pass
  • Codecov reports all modified coverable lines exercised
  • git diff --check; patch applies cleanly to both master and the release/v7.0.0 branch

Jumphost mode launches two independent SSH processes: one bootstraps the destination through ProxyJump, while the other starts the relay directly on the jumphost. --ssh-option configures the destination and should not be replayed on that second connection.

Replaying destination options on the jumphost breaks deployments whose target and jump host use different users, identities, host keys, or trust policy. It can also weaken jumphost verification when a destination-only option disables a check.

Preserve the jumphost user, port, host, alias, and IPv6 parsing added in MisterTea#705, but let jump-specific policy resolve from the jumphost SSH configuration. Add a regression test that records both SSH calls and verifies every destination option remains on the target bootstrap while none reaches the direct jumphost invocation.
@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.22%. Comparing base (b74a12e) to head (f014764).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #790      +/-   ##
==========================================
+ Coverage   87.14%   87.22%   +0.08%     
==========================================
  Files          75       75              
  Lines        6462     6489      +27     
  Branches      610      611       +1     
==========================================
+ Hits         5631     5660      +29     
+ Misses        831      829       -2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@MisterTea

Copy link
Copy Markdown
Owner

@copilot rebase this on latest master

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants