Skip to content

SSH2FA v1.0.2

Choose a tag to compare

@gasvn gasvn released this 02 Jul 15:31
· 43 commits to main since this release

Highlights

More stable SSH connections

Fixes the periodic "shows connected but stuck for ~a minute" behavior after sleep/wake or switching networks (Wi-Fi roam, VPN up/down, Ethernet):

  • No more needless re-logins of live connections. The liveness check now uses an authoritative ssh -O check tiebreaker, so a momentarily-busy master is kept (adopted) instead of being torn down and forced through a fresh 2FA.
  • Staggered reconnects + network-settle delay. After a wake/network change the whole fleet no longer re-authenticates in one thundering instant — connections are spread out and given a moment for the new network to come up, which removes the self-inflicted load that was causing false "dead" reads and 60-second login timeouts.
  • Smarter wake debouncing so a settling network's IP flaps don't restart the reconnect storm.
  • Boot cleanup of stale control-socket symlinks left by older versions.

UX polish (35 improvements)

  • Failures are now visible and actionable: dashboard error banners with a Troubleshoot shortcut, inline failure reasons on host/tunnel rows, and clearer batch-operation reporting.
  • Menu-bar icon turns into a warning triangle (a shape, not just a color) when something needs attention.
  • Add Host: shows the resulting SSH alias, a Return-key "Test login → Add" flow, success confirmation, and no more orphaned host if you cancel after testing.
  • Tunnels: one-click Copy URL, collapsed :port display, clearer "Pick node & start".
  • Settings reorganized everyday → advanced, with accurate captions; Touch ID lock now re-locks correctly.
  • Command Palette is now reachable from the menu bar.

Install

Un-notarized build (no $99 Apple Developer ID), so macOS Gatekeeper needs one extra step:

Homebrew (recommended):

brew install --cask gasvn/tap/ssh2fa && xattr -dr com.apple.quarantine /Applications/SSH2FA.app && open /Applications/SSH2FA.app

(already installed? brew reinstall --cask gasvn/tap/ssh2fa)

Manual: download the DMG → drag to Applications → System Settings → Privacy & Security → "Open Anyway".

Requires macOS 26. You'll need your 2FA secret key (TOTP setup key) — SSH2FA types the codes; it does not work with Duo Push.