Skip to content

Document storing identities in a password manager - #746

Open
ipeq32 wants to merge 2 commits into
FiloSottile:mainfrom
ipeq32:docs-password-manager-identities
Open

ipeq32 wants to merge 2 commits into
FiloSottile:mainfrom
ipeq32:docs-password-manager-identities

Conversation

@ipeq32

@ipeq32 ipeq32 commented Sep 12, 2026

Copy link
Copy Markdown

Summary

  • Adds a short "Storing identities in a password manager" section to the README, covering the pattern of piping an identity from a password manager CLI into age -d -i -.
  • Mentions materializing to a temporary file (with a cleanup trap) for tools like SOPS that need an identity file path rather than stdin.
  • Uses a purpose-scoped key name in the example, per the discussion on the issue.

This is docs-only, no code changes — both patterns already work with the existing -i - support.

Fixes #722

🤖 Generated with Claude Code

https://claude.ai/code/session_019dHe95FDNgtHdZk7uEDbdc

Add a short README section covering the pattern of piping an age
identity from a password manager (e.g. 1Password, Bitwarden, pass)
via -i -, and materializing to a temp file for tools like SOPS that
require an identity file path.

Fixes FiloSottile#722

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019dHe95FDNgtHdZk7uEDbdc

@pcarinhas pcarinhas left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explain risks more clearly..

Comment thread README.md
Comment on lines +282 to +284
### Storing identities in a password manager

Rather than keeping an identity file on disk, it can be kept in a password manager and piped in with `-i -`. Use a name scoped to the purpose of the key, since age identities are cheap to generate and can't be rotated.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should you advocate for password encrypting the identity before storing on a 1password or other system? If those systems are compromised your identies are plain text and exposed.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, good point. I added a paragraph making the trust model explicit (the identity is only as safe as the password manager entry), plus an example of storing a passphrase-protected, armored identity instead (age-keygen | age -p -a), which works with -i - and prompts for the passphrase. I also noted that the SOPS temp file holds the key unencrypted on disk.

Address review feedback: note that an identity stored in a password
manager is only as safe as the password manager, show how to store a
passphrase-protected armored identity instead, and warn that the SOPS
temporary file holds the identity unencrypted.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: example workflow for storing age identities in a password manager (Bitwarden / 1Password / etc.)

2 participants