Files
documentation/docs/dev_guide/gpg_key.md
2024-12-05 12:33:32 +05:30

4.3 KiB
Raw Blame History

sidebar_position
sidebar_position
2

Generate GPG Key

🔐 How to Generate a GPG Key on Snigdha OS

GPG (GNU Privacy Guard) is a tool for secure communication and data encryption. It allows you to create and manage public and private keys, encrypt files, and sign documents. Heres how you can generate a GPG key on Snigdha OS, step by step, with examples.


🛠️ Step 1: Install GPG

Most Snigdha OS installations come with GPG pre-installed. If its not installed, use the following command to install it:

sudo pacman -S gnupg

To verify the installation, check the version:

gpg --version

🛠️ Step 2: Create a New GPG Key Pair

  1. Start the key generation process:

    Run the following command:

    gpg --full-generate-key
    
  2. Select the key type:

    Youll see a prompt to choose the type of key. Options typically include:

    • (1) RSA and RSA (default)
    • (2) DSA and Elgamal
    • (3) DSA (sign only)
    • (4) RSA (sign only)

    Press 1 and hit Enter to select the default RSA and RSA type.

  3. Set the key length:

    Youll be prompted to specify the key size. A common recommendation is 4096 bits for strong encryption. Type 4096 and press Enter.

  4. Set the expiration date:

    You can define how long the key should be valid. Options include:

    • 0 for no expiration
    • Specify a duration, e.g., 1y for one year, 2y for two years, or 1m for one month.

    For this example, type 0 (no expiration) and press Enter. When prompted, confirm your choice.

  5. Enter your details:

    Youll be asked for:

    • Your real name: Enter your full name.
    • Your email address: Enter a valid email address.
    • A comment (optional): Add a description or leave it blank.

    Example:

    Real name: John Doe
    Email address: johndoe@example.com
    Comment: Snigdha OS User
    

    Review the details and confirm by typing O (for OK).

  6. Set a passphrase:

    Choose a strong passphrase to protect your private key. This passphrase will be required whenever you use your private key for encryption or signing.


🛠️ Step 3: Verify the Generated Key

Once the key is generated, you can list your keys with:

gpg --list-keys

Output:

/home/username/.gnupg/pubring.kbx
---------------------------------
pub   rsa4096 2023-12-05 [SC] [expires: 2025-12-05]
      ABCD1234EFGH5678IJKL9012MNOP3456QRST7890
uid           [ultimate] John Doe <johndoe@example.com>
sub   rsa4096 2023-12-05 [E] [expires: 2025-12-05]
  • pub: Your primary key (for signing and certification).
  • sub: Subkey (for encryption).
  • [SC]: Key capabilities: Sign and Certify.
  • [E]: Encryption.

🛠️ Step 4: Export Your Public Key

To share your public key with others, export it:

gpg --armor --export johndoe@example.com > public_key.asc

This creates a file public_key.asc with your public key in ASCII format.

To display the key in the terminal:

gpg --armor --export johndoe@example.com

🛠️ Step 5: Test Encryption and Decryption

  1. Encrypt a file:

    Create a sample file to encrypt:

    echo "Hello, this is a test message!" > message.txt
    

    Encrypt the file with your public key:

    gpg --output message.txt.gpg --encrypt --recipient johndoe@example.com message.txt
    

    This generates an encrypted file message.txt.gpg.

  2. Decrypt the file:

    Decrypt the file using your private key:

    gpg --output decrypted_message.txt --decrypt message.txt.gpg
    

    Enter your passphrase when prompted. The decrypted content will be saved in decrypted_message.txt.


🛠️ Step 6: Back Up Your Keys

Always back up your keys to prevent losing access:

  1. Export your private key:

    gpg --armor --export-secret-keys johndoe@example.com > private_key.asc
    
  2. Export your public key:

    gpg --armor --export johndoe@example.com > public_key.asc
    
  3. Store these files (private_key.asc and public_key.asc) in a safe place.


🚀 Final Tips

  • Keep your private key secure. Never share it.
  • Regularly update your passphrase for added security.
  • Use tools like gpg-agent for easier key management.

Thats it! You now have a functional GPG key pair set up on Snigdha OS. 🎉