Git Commits signed with GPG Key

Overview

Set up your environment to automatically sign git commits with your personalized key, verifying your work in the repository.

Instructions

Step 1: Generate Key

Create a gpg key, as your asurite user: gpg --full-generate-key

Accept default options, fill in your name, email and set a passphrase with your key

$ gpg --gen-key gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection? 1 RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) Requested keysize is 2048 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y GnuPG needs to construct a user ID to identify your key. Real name: William Nolastname Email address: wnolast@asu.edu You selected this USER-ID: "William Nolastname <wnolast@asu.edu>" gpg: /home/[asurite]/.gnupg/trustdb.gpg: trustdb created gpg: key A8BDEFD1 marked as ultimately trusted public and secret key created and signed.

 

Step 2: List all your generated keys

$ gpg --list-keys /home/[asurite]/.gnupg/pubring.gpg ------------------------------- pub 2048R/A8BDEFD1 2022-02-24 uid William Nolastname <wnolast@asu.edu> sub 2048R/CDF1031F 2022-02-24

Step 3: Set up your git config to use your new key

$ git config --global user.name "William Nolastname" $ git config --global user.email "[asurite]@asu.edu" $ git config --global user.signingkey A8BDEFD1 $ git config --global commit.gpgsign true

Step 4: Generate your public GPG key:

Step 5: Copy Key

Take the ---BEGIN PGP PUBLIC KEY BLOCK--- all the way to ---END PGP PUBLIC KEY BLOCK---and paste it into your user profile: https://git.rc.asu.edu

Step 6: Optional

If you set a passphrase (you should have), you can configure the passphrase to be typed in in your current session window:

From now on, each commit you make from this system will be signed with your key.

Additional Help

Â