SSH key management

Keys that are not scattered across four laptops

The usual state of SSH keys is a dotfile on each machine, a passphrase you reuse, and one key that has been everywhere since 2019. Tempest has a keychain: generate a key, attach it to hosts, sync it sealed, and use hardware or short-lived credentials where they belong.

Windows, macOS, Linux, Android, iOS & Web.

Generating an SSH key pair inside Tempest

The keychain

Generate, store, attach

A key is a credential with a lifecycle, not a file you copy around until you lose track of it.

Generate ed25519, ECDSA or RSA keys in the app, or import the ones you already have.
Attach a key to one host or to a whole selection; change it on fifty hosts in one bulk edit.
Stored zero-knowledge encrypted — the sync server holds ciphertext it cannot read. Where credentials are stored
Or keep the key outside entirely and point at an agent socket — a system agent, or 1Password's. Agent & X11 forwarding

Hardware

FIDO2 keys, so the private half cannot leave

A security key holds the secret in hardware and requires a touch. It is the cheapest large improvement available to most people's SSH setup.

sk-ed25519 and sk-ecdsa keys backed by a YubiKey or any FIDO2 authenticator. YubiKey & FIDO2 setup
Works with the same keys your OpenSSH client already uses — no separate enrolment.
Agent forwarding is a per-host switch rather than a default, because forwarding an agent into a box you do not trust is a real risk.

Not storing keys at all

Certificates and credentials issued at connect time

The strongest answer to key sprawl is to stop having long-lived keys. Both routes are supported.

OpenSSH certificates: attach a signed certificate alongside the key, the way a CA-based fleet expects.
HashiCorp Vault: fetch a credential at the moment of connection, so nothing durable is stored on the device. HashiCorp Vault credentials
Zero-trust platforms — Teleport, Cloudflare Access, AWS SSM, GCP IAP, Tailscale — issue their own short-lived credentials and are supported as connection presets. Zero-trust access guide
For teams, a shared vault grants access per member cryptographically, and revocation is one action rather than a key rotation.

The algorithms

Post-quantum key exchange, and control over the rest

Recorded traffic is decrypted later; the key exchange is where that is decided today.

Hybrid post-quantum key exchange, matching what current OpenSSH negotiates. Post-quantum SSH
Per-host algorithm control for the legacy device that only speaks something older.
Presets rather than a list of cipher names to research.
The same keys and hosts across desktop and mobile

Frequently asked questions

Where are my private keys actually stored?
Encrypted on the device with a key derived from your master password, and synced as ciphertext the server cannot read. You can also keep keys outside the app entirely and use an agent socket. Where credentials are stored
Does it work with a YubiKey?
Yes — sk-ed25519 and sk-ecdsa keys are supported, including keys you already enrolled for OpenSSH.
Can I use 1Password's SSH agent?
Yes. Point the agent socket setting at it and the keys never enter the app at all.
Does it support OpenSSH certificates?
Yes — a certificate can be attached alongside the key on a host, which is how CA-issued fleets authenticate.
What if I forget my master password?
There is a self-service reset that destroys the personal vault and starts again — by design, nobody can recover the contents, because nobody else ever had the key. Resetting your password

One keychain. Every machine. Nothing in plaintext.