Secrets
Personal secrets are stored under your user account, encrypted with a key derived from your SSH agent signature. Each secret has its own unique encryption key.
Basic usage
sh
ssh [-A] <user>@<host> [-p <port>] <command> [args]get, set, del, and move require SSH agent forwarding (-A).
Storing secrets
sh
# Store interactively (echo hidden)
ssh -A -t alice@keys.example.com set account/github
# Store from a pipe
echo "hunter2" | ssh -A alice@keys.example.com set account/githubRetrieving secrets
sh
ssh -A alice@keys.example.com get account/githubUsing secrets in scripts
sh
export GITHUB_TOKEN=$(ssh -A alice@keys.example.com get tokens/github)Listing secrets
sh
# List all personal secrets
ssh alice@keys.example.com list
# List under a prefix
ssh alice@keys.example.com list account
# Glob match (trailing * filters by prefix)
ssh alice@keys.example.com ls account/git*
ssh alice@keys.example.com ls account/*list and ls are aliases. See Colors for output formatting details.
Deleting secrets
sh
# Delete a personal secret (prompts for confirmation)
ssh -A alice@keys.example.com del account/github
# Using the alias
ssh -A alice@keys.example.com delete account/githubYou will be asked to confirm before the secret is deleted. The secret must exist and be decryptable — if decryption fails, the delete is aborted.
Moving secrets
sh
# Rename a secret
ssh -A alice@keys.example.com move account/github account/github-old
# Move a personal secret into a vault
ssh -A alice@keys.example.com move tokens/deploy team:deploy/token
# Move a vault secret to personal storage
ssh -A alice@keys.example.com move team:deploy/token tokens/deployThe source secret is decrypted and re-encrypted at the destination, then the source is deleted. If the destination is a vault, you will be shown the vault members and asked to confirm before proceeding.
