I recently got a Trezor One hardware wallet. For the uninitiated, this is a small hardware device that securely stores the cryptographic data needed to manage a cryptocurrency wallet. Check out their wiki for more information. There are other similar devices on the market, the Trezor just happened to be a good fit for me and my needs. Along with cryptocurrency transactions, this device is also able to perform a number of other cryptographic operations including SSH and GPG key operations. I use GPG with git to sign my commits. I’ve recently come back to git and coding after an extended hiatus and realized that I let my previous GPG key expire and honestly, forgot the passphrase. Yes, I know, I am a garbage person, I can’t help it. So, as I was getting ready to shamefully generate a new GPG key, I started considering algorithms and trying to decide the best way to set up the new key. That’s when I remembered the Trezor and its GPG capabilities. I ran into a lot of hang-ups along the way since this process is not overly documented and honestly a bit obscure. I also needed to be able to forward my GPG key over SSH to a remote computer for signing remotely. Since the key resides permanently on the Trezor device there’s no way of just copying the private key to the remote machine. I’ve outlined my process below to maybe save someone else the headache I experienced.
Continue reading