infra:hackerpass
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| infra:hackerpass [2025/11/22 20:38] – atluxity_idp.hackeriet.no | infra:hackerpass [2025/11/22 20:58] (current) – atluxity_idp.hackeriet.no | ||
|---|---|---|---|
| Line 53: | Line 53: | ||
| ===== Adding a new user ===== | ===== Adding a new user ===== | ||
| - | After you have the new users' PGP key in your keyring, reencrypt the whole repository adding the new key: | + | ==== 1. Verify identity (lightweight, but not anonymous) ==== |
| - | < | + | Make sure the person in front of you is the one who controls the key. |
| - | hackerpass init $(<~/.hackeriet_pass/ | + | |
| - | </ | + | |
| - | And then push it: | + | This does not require formal ID checks. |
| - | < | + | Avoid adding keys you only know from random electronic contact with no real-world context. |
| - | hackerpass git push | + | |
| - | </ | + | |
| - | If you get the error message | + | You should at least have met them or otherwise have a non-trivial trust path. |
| - | < | + | ==== 2. Import |
| - | gpg: <PGP key signature>: | + | |
| - | gpg: [stdin]: encryption failed: Unusable | + | |
| - | </ | + | |
| - | then do: | + | If you received a file (for example '' |
| - | < | + | < |
| - | gpg --lsign-key <PGP key signature> | + | |
| - | </ | + | |
| - | or if you don't have your certification | + | ==== 3. Inspect and confirm the key ID ==== |
| - | < | + | Avoid listing all keys. Query only the specific key, using an identifier such as email: |
| - | gpg --tofu-policy good $(cat .hackeriet_pass/ | + | |
| - | </ | + | < |
| + | gpg --list-keys --keyid-format LONG user@example.org | ||
| + | gpg --fingerprint user@example.org </ | ||
| + | |||
| + | Example output: | ||
| + | |||
| + | < | ||
| + | |||
| + | Use the full fingerprint (for example: '' | ||
| + | |||
| + | |||
| + | ==== 4. Set trust on the key ==== | ||
| + | |||
| + | Mark the key as trusted locally, so GnuPG will actually use it for encryption: | ||
| + | |||
| + | <code bash> gpg --lsign-key < | ||
| + | |||
| + | This avoids errors like: | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== 5. Re-encrypt the store including the new user ==== | ||
| + | |||
| + | Reinitialise the password store with all existing recipients plus the new key: | ||
| + | |||
| + | <code bash> hackerpass init $(< | ||
| + | |||
| + | Then push the updated encryption: | ||
| + | |||
| + | <code bash> hackerpass git push </ | ||
| + | |||
| + | ==== Alternative: | ||
| + | |||
| + | If you cannot or do not want to sign the key with your certification key, you can use GnuPG’s TOFU trust: | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | Then repeat the re-encryption step: | ||
| + | |||
| + | <code bash> hackerpass init $(<~/.hackeriet_pass/ | ||
| + | |||
| + | ===== Notes ===== | ||
| + | |||
| + | Every password change creates a Git commit in the repository. | ||
| + | |||
| + | File names and directory structure are not encrypted. | ||
| + | |||
| + | Always run '' | ||
/srv/hackeriet-wiki/dokuwiki/data/pages/infra/hackerpass.txt · Last modified: by atluxity_idp.hackeriet.no