Skip to main content

Security And Secrets

This setup assumes secrets live outside the git repo:

  • SSH private keys: in 1Password (via the 1Password SSH agent)
  • API tokens and small secrets: in pass (password-store)
  • Machine-local overrides that must not be chezmoi-managed: optional extra files sourced last by the shell profiles (see Shell: Fish)

1Passwordโ€‹

The 1Password SSH agent is the expected SSH identity provider.

The 1Password SSH agent itself is configured via:

This controls which 1Password items (ssh keys) are available to the agent.

GPG Agent (Pinentry + Cache TTL)โ€‹

This setup configures gpg-agent to:

  • use pinentry-mac on macOS
  • set a cache TTL based on the pgpCacheTtl prompt

Relevant files:

Password Store (pass)โ€‹

Fish loads several API keys from pass if they are not already set in the environment:

On first setup, pass is installed and the password store is cloned via:

That script also imports PGP keys (via op read) and adjusts trust for the primary identity.

Verification And Troubleshootingโ€‹

Check security wiring:

echo "$SSH_AUTH_SOCK"
git config --get core.sshCommand
gpgconf --list-options gpg-agent | rg -i 'default-cache-ttl|max-cache-ttl'

If secrets are missing at runtime: