prog88
  • Welcome to prog88
  • Software Engineering
    • [TechSpec] Personal Macs
    • MOBILE DEVELOPMENT
      • iOS OSX
        • Swift
        • SwiftUI
        • UIKit ~ SwiftUI (2.0)
    • MOBILE TOOLS
      • iOS Simulator
      • [CS] Xcode
    • UNIX / OSX ZONE
      • [Tools] Miscellaneous
      • App Package Manager
      • SSH
      • GPG
      • Terminal & Touch ID
      • [CS] GIT
    • NETWORKING
      • HTTP [RFC2616 : 7230-7239]
    • EDITING SYNTAX
      • [CS] Markdown
  • COOKING ZONE
    • DESSERTS BOOK
      • Almond Tofu - ๆไป่ฑ†่…
      • Daifuku mochi - Creamy Mango
    • BAKERY BOOK
      • Fondant au chocolat
  • Gaming zone
    • WWZ - How to Survive [Guide]
Powered by GitBook
On this page
  • Install GPG
  • Generate a GPG Key
  • Signing git commits
  • Tips & Tricks

Was this helpful?

  1. Software Engineering
  2. UNIX / OSX ZONE

GPG

2020/06/29 by jean tran

Install GPG

Generate a GPG Key

  1. Run the following command:

gpg --full-gen-key
  1. A prompt ask you to choose between 1-4 key type:

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
  1. It is recommended to choose at least 4096:

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
  1. Specify GPG key expiration:

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) 0
Key does not expire at all
  1. Asking for confirmation (y/N):

Is this correct? (y/N) y
  1. Double checking your info to validate or edit:

GnuPG needs to construct a user ID to identify your key.

Real name: <your_real_name>
Email address: <your_email>
Comment:
You selected this USER-ID:
    "<your_real_name> <your_email>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
  1. Listing GPG Keys:

gpg --list-secret-keys --keyid-format LONG <your_email>

It will prompt information such as the following:

sec   rsa4096/BC4F4B77228120E9 2020-05-30 [SC]
      FBC35FE19353F84DAD4640B6BC4F4B77228120E9
uid                 [ultimate] <comment> <your_email>
ssb   rsa4096/4FF81D971F73F011 2020-05-30 [E]
  1. Export public key ID

Copy the value equivalent of BC4F4B77228120E9 (replace your key ID as listed on step6)

gpg --armor --export BC4F4B77228120E9

Signing git commits

  1. Add the ID to your Git configuration file config or .gitconfig (example: BC4F4B77228120E9):

[user]
  name = <your_name>
  email = <your_email>
  signingkey = <same_id_key_used_on_step7>
  1. Commit can be signed by adding the following -S flag

git commit -S -m "your commit description message"
  1. Case if you don't want to bother with -S flag

git config --global commit.gpgsign true

Tips & Tricks

For OSX add the following command on your .<type>rc file. (.bashrc | .zshrc)

# ioctl issue for signing GPG OSX
export GPG_TTY=$(tty)
PreviousSSHNextTerminal & Touch ID

Last updated 4 years ago

Was this helpful?