Skip to content

SSH2FA v1.5.11

Choose a tag to compare

@gasvn gasvn released this 01 Aug 23:47

简体中文

“已连接”现在真的表示 SSH 可用

  • SSH2FA 会验证 ControlMaster 能否真正承载会话,不再把“进程还活着但连接不可用”显示为 Connected。
  • 自动识别用户已有的 ControlMaster / ControlPath 配置,并默认复用温连接;不再要求用户完成一组复杂设置。
  • App 与后台服务短暂重连时使用中性的恢复状态;只有真正失败才显示错误和 Troubleshoot。

彻底处理反复密码提示

  • daemon 使用跨版本稳定的证书身份;发布脚本会拒绝会导致每次升级重新授权 Keychain 的 ad-hoc 签名。
  • 凭据读取和旧数据迁移合并,避免一个主机、一个字段地反复弹出 macOS 密码确认。

升级和排障不再断开 SSH

  • 后台服务升级后会接管现有 ControlMaster,而不是关闭它们并强迫用户重新 SSH/2FA。
  • 仅 UI 变化或普通重开 App 不再无故重启后台服务。
  • Troubleshoot 的服务重启也会保留现有 SSH 连接。

UI 与默认行为

  • 修复失败状态下 Retry 按钮被底层悬浮按钮遮挡、实际无法点击的问题。
  • 不再向用户暴露 “helper”、daemon、IPC、ControlMaster 等内部术语,也不再把后台恢复误报为 “Connection lost”。
  • 删除误导性的后台服务开关;SSH2FA 默认自动管理需要的服务和复用配置。
  • 错误信息统一转换为用户可以直接处理的说明。

可靠性

  • 包含 v1.5.1 之后的 7 轮 daemon、状态持久化、输入校验和 SSH 恢复修复。
  • 261 个 macOS 测试和 615 个 Rust 测试通过,0 失败。

English

  • Connected now requires a ControlMaster that can actually carry an SSH session.
  • Existing ControlMaster / ControlPath settings are detected and warm reuse is the default.
  • Stable daemon signing identity prevents every release from re-requesting access to every Keychain item.
  • App updates, service recovery, and Troubleshoot preserve live SSH masters instead of forcing another SSH/2FA login.
  • UI-only updates and ordinary app relaunches no longer restart a healthy background service.
  • Retry remains clickable after failures, and internal helper/daemon/IPC terminology no longer leaks into the UI.
  • Includes seven additional rounds of daemon, persistence, input-validation, and recovery hardening since v1.5.1.

Install / Update

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

Already installed: brew reinstall --cask ssh2fa, or download SSH2FA.dmg below.

Universal Apple Silicon + Intel build. Requires macOS 26.

This release uses SSH2FA's stable local signing certificate but is not Apple-notarized yet. macOS may require the xattr command above or System Settings → Privacy & Security → Open Anyway.

DMG SHA-256: ccbd8358e13304870082acc65a67386210203107a65a602ec3020d9a8d8551da