Skip to content

v0.1.26

Latest

Choose a tag to compare

@lonnywong lonnywong released this 26 Jul 00:33
· 8 commits to main since this release
fd6e40d

Release v0.1.26

This release brings major new capabilities to SSH multiplexing and UDP session management, alongside extensive compatibility improvements, new configuration options, and a wide array of bug fixes.

🎉 Major Features

  • Multiplexing & ControlMaster Support:
    • Added -M flag to enable multiplexing master mode.
    • Added -O <ctl_cmd> flag to control the multiplexing master process (#260).
    • Added -S (ControlPath) support, enabling tssh to be used as the underlying SSH client for tools like Mosh.
    • Migrated to native ssh.NewControlClientConn from upstream golang.org/x/crypto for safer, native OpenSSH ControlMaster proxying.
  • UDP Session Attach & Detach: Support for detaching from active UDP sessions and attaching to existing UDP sessions across different devices.
  • Host Key Verification & Management:
    • Added support for VerifyHostKeyDNS for SSHFP-based host key verification (#261).
    • Added --remove-host-key option to easily clean up stale entries in known_hosts (#267).
    • Added support for the HashKnownHosts SSH configuration.
  • Host Canonicalization: Implemented support for canonical host lookups, CanonicalizeHostname, and corrected CanonicalizeMaxDots behavior (#248, #251).
  • Protocol Overrides: Added --tcp and --quic options to easily override UdpMode (#263).

✨ Enhancements

  • Connection & Stability:
    • Updated tsshd dependency with significant reconnect and diagnostics improvements.
    • Added configurable UdpReconnectExitKey (e.g., Ctrl+D) to manually exit during UDP connection loss (#244).
    • Increased default UdpAliveTimeout to 10 days and improved time formatting.
    • Optimized UDP preview fetching, rendering, and terminal redraws.
    • Enhanced forwarding shutdown and attach error handling.
  • Configuration & DNS:
    • Added CustomDnsServer configuration in tssh.conf (can be overridden by --dns).
    • Support loading both XDG and legacy SSH config files.
    • Added fuzzy host selection configuration and cancel exit code (#269).
  • UI & UX:
    • Displays connection RTT directly in the terminal title.
    • Hides the host in the "tiny" theme when empty or when it equals the alias (#252).
    • Added -n (NoStdin) flag support.
  • Compatibility:
    • Support for KexAlgorithms and unified SSH algorithm handling (#240).
    • Support for ProxyCommand in UDP mode (automatically implies TCP proxy mode) (#262).
    • Added support for more remote OS and architecture variants (#242, #243).
    • Aligned agent key matching and proxy config closer to OpenSSH specs (#247).

🐛 Bug Fixes

  • Network: honored AddressFamily settings for ambiguous connections (#256).
  • File Paths: Resolved issues parsing the home directory (~/) for identity files (#259).
  • Terminal Issues:
    • Skipped Windows virtual terminal setup when stdout is piped (#264).
    • Ignored cursor position reports during ESC[6n filtering.
  • Routing & State:
    • Fixed exit notification when a non-UDP target is behind a UDP jump host.
    • Ensured the client exits properly when the remote shell ends.
    • Discarded server output during connection loss to prevent terminal artifacts.
    • Synced args.Destination with the resolved host so config processing correctly applies Host/Match stanzas (#251).
  • General Fixes:
    • Ensured atomic binary installation via temporary files to prevent corruption (#245).
    • Prevented duplicate host aliases from being incorrectly parsed (#249).
    • Fixed macOS default ssh-sk-helper path resolution (#241).
    • Replaced strings.ToLower comparisons with strings.EqualFold for safer case-insensitivity.

🔨 Under the Hood (Build & Docs)

  • Added automatic pre-release deployment via CI.
  • Refined README formatting, table layouts, website URLs, and installation guides.
  • Moved the Debian package section from utils to net.
  • Updated package metadata and bumped dependencies.

New Contributors

Full Changelog: v0.1.25...v0.1.26