Skip to content

Security model

Security is the point of SSH Ache, not a feature bolted on. Two layers matter: how the desktop app protects things locally, and how Teams / the cloud vault stay zero-knowledge.

On your machine

  • Secrets in the OS keychain. Passwords, key passphrases, and private keys are stored in the platform keychain (Keychain / Credential Manager / Secret Service), not in plaintext on disk.
  • Host-key verification. First-connect fingerprint confirmation, pinned in a local known_hosts store. A changed host key refuses the connection.
  • No account, no upload. Using the app requires no sign-in. Local-only hosts never leave your machine.

Zero-knowledge cloud

When you opt into Teams or the personal vault, the server is designed so it cannot read your data — it stores ciphertext and wrapped keys, nothing more.

  • Team key. Each team (and each personal vault) has a symmetric team key. Connections are encrypted ("sealed") under it before they leave your device.
  • Wrapped to members. The team key itself is sealed to each member's public key (X25519). Only a member's device can unwrap it. Adding a member means an existing member wraps the key to the newcomer's key — the server never handles it in the clear.
  • What the server stores. Ciphertext connections, per-member wrapped keys, and metadata needed to route sync. Not your credentials, not your session output.

Cryptography

SSH Ache uses audited @noble primitives:

  • XChaCha20-Poly1305 for authenticated symmetric encryption,
  • X25519 for key agreement and sealing keys to recipients,
  • Ed25519 for signatures,
  • Argon2id for deriving keys from your password.

Live view & audit

Live view is read-only and never silent — the watched session shows a watcher count. The Auditor role can review session history and presence for oversight without the ability to decrypt connection secrets.

Reporting a vulnerability

Found something? Please report it via the GitHub repository. Responsible disclosure is appreciated.

Source-available · noncommercial. Local-first & zero-knowledge by design.