Repository navigation
SSH2FA v1.0.2
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 checktiebreaker, 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
:portdisplay, 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.