Hey guys, I wanted to ask you how you manage your gpg keys? Having them in plaintext all the time on my hard drive feels unsecure.

I have my ssh keys in a password manager (KeePassXC) that only exposes them to the keyagend, when unlocked. Do you know if something like that exists for pgp too?

  • med@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    8 hours ago

    I’d agree that a hardware solution would be best. Something designed specifically to do it. I’ve been eyeing up the biometric yubikey for a while.

    I do this for ssh keys, VPN certs and pgp keys. My solution is pretty budget, I generate the keys on a LUKS encrypted USB and run a script that loads them in to agents, and flushes them on sleep. The script unlocks and mounts the LUKS partition, adds the keys to agents, unmounts and locks the USB. The passwords I just remember for the unlock and load into memory, but they’re ripe for stuffing in to keepass-xc - I need to look at the secret service api and incorporate that in to the script to fetch the unlock passwords directly from keepass.

    I have symlinks in the default user directories to the USB’s mount points, like ~/.ssh/id_ed25519 -> /run/media/<user>/<mount>/id_ed25519. By default, when you run ssh-agent, it tries to add keys in the default places.

    The way it works for me is:

    • plug the USB in to the laptop after a restart or wake-up
    • run script
    • enter passwords for luks key, ssh-agent, gpg agent etc.
    • Unplug USB.

    I keep break-glass spares in a locked cabinet in my house and office, both with different recovery keys

    I do this because it’s my historical solution, and I haven’t evaluated the hardware options seriously yet.

  • Flax@feddit.uk
    link
    fedilink
    English
    arrow-up
    3
    ·
    10 hours ago

    I store them in an app on my phone behind password protection

  • hummingbird@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    11 hours ago

    You should not store your privates keys unencrypted. In fact by default your keys are stored password protected just as if you’d store them in keepass.

      • Flax@feddit.uk
        link
        fedilink
        English
        arrow-up
        3
        ·
        10 hours ago

        Depends on how strong your password is and the environment you are entering the password in

        • hummingbird@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          36 minutes ago

          It differs between software vendors and versions. For example, if you’re using a recent version of gnupg, your key is most likely stored using openpgp-s2k3-ocb-aes. Use that as a starting point to find more information on how good the protection is. I personally would rate it a fair bit lower compared to the key derivation methods used in keepass which focus more on brute force resistance.

    • bruce965@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      9 hours ago

      I am not OP, but that would be the ideal solution for me. Unfortunately, KPXC does not support communication with the GPG agent and the team is not interested in adding this feature due to it being «[…] far more complicated than ssh-key management. There are already excellent tools for this, Kleopatra being the best».

    • Zenlix@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      11 hours ago

      That would chsnge nothing, simce they would also be on the hard drive.