Repository navigation
Conversation
datlechin
enabled auto-merge (squash)
October 20, 2026 03:11
…penssh-matrix # Conflicts: # apple/TableProMobile/TableProMobile/Localizable.xcstrings
…penssh-matrix # Conflicts: # apple/Packages/TableProCore/Sources/TableProSSHTransport/SSHChannelRelay.swift # apple/Packages/TableProCore/Tests/TableProSSHTransportTests/SSHChannelRelayTests.swift # apple/TableProMobile/TableProMobile/Helpers/AppError.swift # apple/TableProMobile/TableProMobile/Localizable.xcstrings # apple/TableProMobile/TableProMobile/SSH/SSHTunnel.swift # apple/TableProMobile/TableProMobile/SSH/SSHTunnelFactory.swift # apple/TableProMobile/TableProMobile/SSH/SSHTunnelStages.swift # apple/TableProMobile/TableProMobileTests/SSH/SSHTunnelFactoryTests.swift
datlechin
disabled auto-merge
October 20, 2026 04:33
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.
Summary
apple/scripts/ssh-test-servers.shandscripts/lib/openssh-fixture.sh: pinned OpenSSH 10.3 and 9.9 servers (PQ-only, MAC-only, RSA SHA-2, keyboard-interactive, TOTP, MaxAuthTries, two hops, loss), published on 127.0.0.1 only.sftp-test-server.shuses the same pin and banner wait.apple/scripts/probes/check-ssh-tunnel-matrix.sh: builds the iOS tunnel sources for the simulator against the shipped libssh2 and runs 98 cells through a Redis PING, two-hop chains included. A probe, not CI: no CI job has Docker..pub(unless it is a certificate), so a wrong passphrase fails locally.LibSSH2ChannelIO(both apps): a transport error ends the relay as a hangup, not a channel close. An iOS tunnel relaying data now stops at once on a dead server instead of after about 37 s.SSHChannelRelay(both apps) sends withMSG_NOSIGNAL: a client closing during channel data no longer kills the process with SIGPIPE. feat(ios): open connections through SSH jump hosts #3683 landed the same send flag; its test and this PR's are one case now.jumpHostFailed, which names the hop and keeps the words. One by-case classifier,ErrorClassifier.sshTunnelFailure, holds the jump host cases and this PR's.libssh2_session_free; channel free retried until done (SSHChannelFreePump) instead of leaving an unsent CLOSE; channel open polls 100 ms until its 6 s deadline, which fixed 30 clients on one tunnel.TableProSSHTransport:SSHNegotiationFailure,SSHPrivateKeyTraits,SSHAuthMethods,KeyboardInteractivePromptKind(the Mac'sKBDINTPromptType, moved).PQ-only server, before:
SSH handshake failed: Handshake failed (error -5). After:TablePro and the SSH server have no key exchange or host key method in common. The server runs OpenSSH_10.3. TablePro supports these key exchange methods: curve25519-sha256, ...Test plan
SSHChannelRelayTests(transport failure, closed client),SSHNegotiationFailureTests,SSHPrivateKeyTraitsTests,SSHAuthMethodsTests,KeyboardInteractivePromptKindTests,SSHChannelFreePumpTests,LibSSH2ChannelIOTests,LibSSH2AuthenticationTests,SSHTunnelErrorClassifierTests.SSHTunnelFactoryTests.unsupportedAuthMethodDiscards(Keyboard Interactive since feat(ios): open connections through SSH jump hosts #3683) now expectsauthMethodUnsupported(.keyboardInteractive). New:namedHopFailureNamesTheHop.KeyboardInteractiveContextTestsgains onlyimport TableProSSHTransport.apple/scripts/probes/check-ssh-tunnel-matrix.shon the simulator: 93 of 93 before feat(ios): open connections through SSH jump hosts #3683. After merging it: the two-hop, agent and loss cells 8 of 8 (a killed hop stops a relaying tunnel at once). On main the key, passphrase, FIDO, PQ, MAC and keyboard-interactive cells show only error numbers, and a relaying tunnel takes about 37 s to notice a dead server.Part of #3662
Not in this PR
IOSSSHProviderto the session, as the Mac'sonDeathdoes.MaxAuthTries 1that extra try turns it into a plain failure.