Signing that keeps your name out of it.

A signature proves a file came from you. AgePony seals it inside the ciphertext, so the file that goes out proves nothing to anyone who cannot already read it.

standard SSHSIG sign-then-encrypt ed25519 + RSA security keys trusted signers iOS + Android

One place to sign.

From 4.0 signing has its own tab. Pick a key, choose whether to sign alone or sign and encrypt in one pass, and manage the signers you trust, all without leaving it.

01

Sign on its own

Produce a detached .sig in standard SSHSIG format. Anyone with OpenSSH verifies it. Nothing about the file changes.

02

Sign then encrypt

One pass. The signature is sealed inside the encrypted file, so the ciphertext no longer tells an interceptor who sent it.

03

Trusted signers

Keep an allowed_signers list of the people you accept. Add or remove them here, and AgePony names the signer when a file checks out.

The signature travels inside the file.

A detached signature sitting next to a file is readable. Anyone who intercepts the pair can lift the signer's public key straight off it and learn who sent the file without decrypting anything. AgePony signs the plaintext, packs the payload and its signature together, and encrypts the whole thing. One file goes out. The recipient learns who signed it only once they can already read it.

  • Standard SSHSIG inside. Namespace agepony, identical to ssh-keygen -Y sign. Sealing it in changes where it lives, not what it is.
  • Checked on the way out. Decrypt in AgePony and the signature is verified as the file streams past, with the signer matched against your identities and trusted signers.
  • Detached still available. Want a separate .sig anyone can verify with plain OpenSSH? That flow is untouched.
  • Old pairs still open. A .age and .age.sig made by AgePony 2.0 verifies exactly as it always did.
verify anywhere

No AgePony needed on the other end. Anyone can confirm a detached signature with the tool they already have:

# they sign on their phone, you verify on a laptop ssh-keygen -Y verify \ -f allowed_signers \ -I friend@example.com \ -n agepony \ -s report.pdf.sig \ < report.pdf # => Good "agepony" signature for friend@example.com

Sign with whatever you carry.

In-app software keys, a key born in the device's secure hardware, or an external security key you tap. All of them produce the same standard signature.

  • In-app SSH keys. Generate or import ed25519 or ssh-rsa keys. RSA joins ed25519 for signing in 4.0, with rsa-sha2-512 signatures.
  • Hardware-born keys. A Secure Enclave key is generated on the device and cannot be exported. It signs without the private half ever existing in memory.
  • NFC security keys. Tap a FIDO key to sign: sk-ssh-ed25519 and sk-ecdsa-sha2-nistp256, YubiKey, Token2 and others.
  • PIN-aware. Touch-only keys stay one tap. PIN-protected keys prompt for the FIDO2 PIN only when the key demands it.
sign then encrypt with a hardware key

A signature from a non-exportable Secure Enclave key can still be sealed inside the ciphertext. The private key never leaves the hardware, and the file that goes out still gives nothing away.

New to SSHSIG? The glossary entry explains the format, and the guides walk through signing step by step.

Signing is in every build.

On iPhone and Android, free, open source, no accounts.